ArcGIS Online 中的地理编码功能

Geocoding function in ArcGIS online

我需要从地名(即美利坚合众国、弗吉尼亚州、夏洛茨维尔)获取范围(边界框)。在 JS API 中调用的适当函数是什么?

我想以编程方式执行此操作,就好像我已将其输入到搜索小部件中一样。

地图是用JS制作的API:

<script src="https://js.arcgis.com/4.12"></script>

map=new Map({ basemap:baseMap, });                          
    activeView=app.mapView=new MapView({                                                                                         
    container:container, map:map                                                                 
    });

我可以像这样使用 REST 函数,但必须有一个内部函数:

 url="http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/findAddressCandidates?f=pjson&SingleLine="+loc;
    $.ajax( { url: url, dataType: 'jsonp' } ).done(function(res) {                      
          extent=res.candidates[0].extent;                                          
    }); 

使用jquery AJAX也不错,你可以通过使用esri/tasks/locator class and its addressToLocations方法

用ESRI API达到同样的效果
require(["esri/tasks/locator"], function(Locator) {

  var locator = new Locator("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");

  locator.addressToLocations(loc).then(function(res) {
      console.log(res);
      var extent = res.candidates[0].extent;    
  });