You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:12:34