FEMA NFHL Зоны опасности наводнений Доступ к ArcGIS Online API через VBA

Я пытаюсь получить доступ к ArcGIS Online через API через VBA. Моя конечная цель - предоставить список значений широты и долготы в Excel, а затем слой FEMA, представляющий зону опасности затопления, возвращать, в какой зоне затопления находится широта / долгота (например, "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

1 ответ

Решение

Я решил свою проблему... Как я уже говорил, я пытался получить доступ к LAYER из ArcGIS. Он содержит полигоны, которые определены как зоны риска наводнений. Ссылка на этот слой была указана в моем первоначальном вопросе... Я пытался передать широту / долготу этому слою, чтобы он возвращал любое имя зоны, определяя, в каком полигоне он находится. Оказывается, это нельзя вернуть в формат XML, только JSON. Вот строка запроса для любого, кто нуждается в ней в будущем... Это для Lat: 32.333, Long: -96.6666 и возвращает ЗОНУ ОПАСНОСТИ ПОТОКА, в которой находится эта точка. Она возвращается в формате JSON...

http://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=¶meterValues=&rangeValues=&f=pjson

... Этот Reddit Post очень помог мне.

Другие вопросы по тегам