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;
});
我需要从地名(即美利坚合众国、弗吉尼亚州、夏洛茨维尔)获取范围(边界框)。在 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
方法
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;
});