FEMA NFHL 洪水危险区 ArcGIS Online API 通过 VBA 访问

FEMA NFHL Flood Hazard Zones ArcGIS Online API access through VBA

我正在尝试通过 API 到 VBA 访问 ArcGIS Online。我的最终目标是在 Excel 中提供 Lat/Longs 的列表,然后让 FEMA 洪水危险区图层 return 我的 Lat/Long 所在的洪水区(例如 "X"、"AE"、等等)。

我只找到了几个资源,但无法解释如何从图层访问数据。非常感谢任何帮助。无论如何我都不是这方面的专业人士,但我很能干。

以下是我找到的一些资源:

https://hazards.fema.gov/gis/nfhl/rest/services/public/NFHL/MapServer/28

https://hazards.fema.gov/femaportal/wps/portal/NFHLWMS

https://msc.fema.gov/portal/home

我有一些代码(显然不完整):

Function FEMA(LatLong As String)

Dim surl As String Dim oXH As Object Dim bodytxt As String

surl = "https://hazards.fema.gov/gis/nfhl/rest/services/public/NFHL/MapServer/28" & LatLong

Set oXH = CreateObject("msxml2.xmlhttp")

With oXH
    .Open "get", surl, False
    .send
    bodytxt = .responseText
End With

Cells(3, 3).Value = bodytxt


Set oXH = Nothing
End Function

我已经解决了我的问题...正如我所说,我试图从 ArcGIS 访问 LAYER。这包含被识别为洪水危险区的多边形。该层的 link 已在我的原始问题中说明...我试图将 Lat/Long 传递给该层以通过确定它是哪个多边形来使其 return 无论区域名称是什么是的。事实证明,这不能以 XML 格式 returned,只能 JSON。这是将来需要它的任何人的查询字符串......这是一个纬度:32.333,经度:-96.6666 和 returns 这个点所在的洪水危险区。它是 return以 JSON 格式编辑...

hazards.fema.gov/gis/nfhl/rest/services/public/NFHL/MapServer/28/query?where=1%3D1&text=&objectIds=&time=&geometry=-96.6666%2C32.333&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelWithin&relationParam=&outFields=FLD_ZONE&returnGeometry=false&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&queryByDistance=&returnExtentsOnly=false&datumTransformation=&parameterValues=&rangeValues=&f=pjson

...This Reddit Post对我帮助很大