如何在Jupyter Notebook的ArcGIS地图对象上绘制坐标点?
在ArcGIS Python API底图上绘制坐标点的正确方法
你的问题出在直接将shapely的Point对象传入map.content.add()——这个方法不支持shapely几何类型,需要使用ArcGIS Python API自带的几何类或转换为可识别的图形对象。以下是两种可行的解决方案:
方案1:使用ArcGIS原生几何类
直接用arcgis.geometry.Point创建坐标点,再封装为Graphic添加到地图:
from arcgis.gis import GIS from arcgis.geometry import Point from arcgis.mapping import Graphic from arcgis.symbols import SimpleMarkerSymbol # 恶魔岛坐标 coordinateX = -122.4230 coordinateY = 37.8270 # 创建ArcGIS原生Point对象(指定空间参考为WGS84) arcgis_point = Point({"x": coordinateX, "y": coordinateY, "spatialReference": {"wkid": 4326}}) # 自定义点样式(可选,不设置则用默认样式) symbol = SimpleMarkerSymbol(style="circle", color=[255, 0, 0], size=10) # 封装为Graphic对象 point_graphic = Graphic(geometry=arcgis_point, symbol=symbol) gis = GIS() map = gis.map('San Francisco') # 单个点需添加到map.graphics集合,而非content map.graphics.add(point_graphic) map
方案2:转换shapely Point为ArcGIS几何
如果坚持使用shapely的Point,可以通过arcgis.geometry.Geometry()转换格式:
from arcgis.gis import GIS from arcgis.geometry import Geometry from arcgis.mapping import Graphic from shapely.geometry import Point coordinateX = -122.4230 coordinateY = 37.8270 # shapely Point转ArcGIS可识别的Geometry对象 shapely_point = Point(coordinateX, coordinateY) arcgis_geom = Geometry(shapely_point.__geo_interface__) point_graphic = Graphic(geometry=arcgis_geom) gis = GIS() map = gis.map('San Francisco') map.graphics.add(point_graphic) map
关键注意点
map.content.add()用于添加图层类资源(如FeatureLayer、Item),单个坐标点需添加到map.graphics集合- 确保坐标的空间参考与底图一致(示例使用WGS84,wkid=4326,为ArcGIS底图默认空间参考)
内容的提问来源于stack exchange,提问作者pepe
相关产品推荐
相关产品推荐

