MyMapView.InteractionOptions = new MapViewInteractionOptions();
}
private async void MyMapView_ViewpointChanged(object sender, EventArgs e)
{
if (MyMapView.InteractionOptions.IsPanEnabled)
{
var exent = MyMapView.GetCurrentViewpoint(0);
if (exent == null) return;
var center = exent.TargetGeometry.Extent.GetCenter();
var center84 = GeometryEngine.Project(center, SpatialReferences.Wgs84) as MapPoint;
point.Geometry = center84;
if (!GeometryEngine.Disjoint(polygon, center84))
{
//text.Text = center84.ToString();
}
else
{
MyMapView.InteractionOptions.IsPanEnabled = false;
if (center84.X < x1)
center84 = new MapPoint(x1, center84.Y, SpatialReferences.Wgs84);
else if (center84.X > x2)
center84 = new MapPoint(x2, center84.Y, SpatialReferences.Wgs84);
if (center84.Y < y2)
center84 = new MapPoint(center84.X, y2, SpatialReferences.Wgs84);
else if (center84.Y > y1)
center84 = new MapPoint(center84.X, y1, SpatialReferences.Wgs84);
var tmp = await MyMapView.SetViewpointCenterAsync(center84);
if (tmp)
MyMapView.InteractionOptions.IsPanEnabled = true;
}
}
}
}
2 个回复
谢峥
赞同来自: 朱新颖
朱新颖
赞同来自:
要回复问题请先登录或注册
发起人
相关问题
问题状态
—— 扫技术支持中心微信服务号!
—— 让GIS知乎问答随时随地!