所有
我是iOS的arcgis的新手,现在遇到一个奇怪的问题,我研究了其他线程,但未找到任何解决方案。
我想在图形图层上显示一栋经度为116.929167,纬度为34.727222的建筑物。我的基础地图图层位于
WGS84空间参考。
但是,当我第一次尝试以下代码时,它导致该点放错了位置。
注意:该位置位于中国江苏省的某个地方,但它位于中国湖南省。
//create an instance of a tiled map service layer
AGSTiledMapServiceLayer *tiledLayer = [[AGSTiledMapServiceLayer alloc] initWithURL:[NSURL URLWithString:kTiledMapServiceURL]];
//Add it to the map view
[self.mapView addMapLayer:tiledLayer withName:@"Tiled Layer"];
//release to avoid memory leaks
//set the callout delegate so we can display callouts
self.mapView.callout.delegate = self;
//add graphics layer for the graphics
self.graphicsLayer = [AGSGraphicsLayer graphicsLayer];
//add the graphics layer to the map
[self.mapView addMapLayer:self.graphicsLayer withName:@"Graphics Layer"];
//zoom to china
AGSEnvelope *chinaEnv = [AGSEnvelope envelopeWithXmin:78.0000000
ymin:0.4400000
xmax:156.0000000
ymax:75.0000000
spatialReference:[AGSSpatialReference wgs84SpatialReference]];
[self.mapView zoomToEnvelope:chinaEnv animated:YES];
self.mapView.callout.customView = nil;
self.mapView.callout.accessoryButtonHidden = YES;
double longitude = 116.929167;
double latitude = 34.727222;
AGSPoint *graphicPoint = [AGSPoint pointWithX:longitude y:latitude spatialReference:[AGSSpatialReference wgs84SpatialReference]];
[self.mapView.callout showCalloutAt:graphicPoint screenOffset:CGPointMake(0, 0) animated:YES];
谁能告诉我为什么它不能显示正确的位置以及如何解决此问题?
非常感谢您的时间和答复!
最好的祝福。
最佳答案
恐怕您在WGS84 Web Mercator和WGS84之间感到困惑。
WGS84 Web墨卡托:这是一个投影坐标系,世界上大部分地区(谷歌,埃斯里,bing)都使用它
WGS84:纬度/经度
回到您的问题,我想您的底图是WGS84 Web Mercator。但您的地图点是wgs84SpatialReference。你必须投影它。
希望这能解决您的问题。