地址编码
地址解析服务提供从地址转换到经纬度的服务,反之,逆地址解析则提供从经纬度坐标转换到地址的转换功能。
地理编码
根据地址描述获得坐标信息。如下示例,我们将地址“延安路9号,大连”转换获取该位置的地理经纬度坐标,并在这个位置上添加一个标注。
// 设置地图瓦片层url
var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJGQU5HaTIyR0VOeUhsTTJCZ211bEhpRGhtR2pFYmFLYyIsInVzZXIiOiJndWVzdCJ9.CJ9JuWCxrx4U40K%2FHoBcgqP%2Bgn%2BWqXE9io6eCxi6g9g%3D"
var layer = FMap.tileLayer('http://map.botaisoft.com/apis/v1/rastertiles/mix_map/{z}/{x}/{y}.png?token=' + token);
// 创建地图实例
var mapEncode = new FMap.Map('mapEncode', {
// 设置中心点坐标
center: new FMap.LatLng(38.92705, 121.6580833),
// 设置地图缩放级别
zoom: 13,
maxZoom: 17,
minZoom: 3,
// 设置地图实例瓦片层
layers: [layer]
});
var inputValArray = ["延安路9号", "大连"];
if (inputValArray[0] != "") {
var url = "http://map.botaisoft.com/apis/";
var geocoderSearcher = new FMap.GeocoderSearch(
new FMap.GeocoderSearchOptions(url, function (result) {
for (let i = 0; i < result._infolist.length; i++) {
var template = '<p>' + result._infolist[i].addrname + '</p>';
var marker = FMap.marker([result._infolist[i].location.lat, result._infolist[i].location.lon]).addTo(mapEncode);
marker.bindPopup(template).openPopup();
}
}, token
));
geocoderSearcher.geoEncode(inputValArray[0], inputValArray[1]);
}
逆地理编码
根据坐标点获得该地点的地址描述,是地址解析的逆向转换。
// 设置地图瓦片层url
var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJGQU5HaTIyR0VOeUhsTTJCZ211bEhpRGhtR2pFYmFLYyIsInVzZXIiOiJndWVzdCJ9.CJ9JuWCxrx4U40K%2FHoBcgqP%2Bgn%2BWqXE9io6eCxi6g9g%3D"
var layer = FMap.tileLayer('http://map.botaisoft.com/apis/v1/rastertiles/mix_map/{z}/{x}/{y}.png?token=' + token);
// 创建地图实例
var mapDecode = new FMap.Map('mapDecode', {
// 设置中心点坐标
center: new FMap.LatLng(38.92705, 121.6580833),
// 设置地图缩放级别
zoom: 13,
maxZoom: 17,
minZoom: 3,
// 设置地图实例瓦片层
layers: [layer]
});
var inputValArray = [38.919184,121.616318];
if (inputValArray[0] != "") {
var url = "http://map.botaisoft.com/apis/";
var geocoderSearcher = new FMap.GeocoderSearch(
new FMap.GeocoderSearchOptions(url, function (result) {
console.log(result)
for (let i = 0; i < result._infolist.length; i++) {
var template = '<p>' + result._infolist[i].address + result._infolist[i].telephone + result._infolist[i].districtCode + result._infolist[i].poiName + '</p>';
var marker = FMap.marker([result._infolist[i].location.lat, result._infolist[i].location.lon]).addTo(mapDecode);
marker.bindPopup(template).openPopup();
}
}, token
));
var location = new FMap.LatLng(parseFloat(inputValArray[0]), parseFloat(inputValArray[1]));
geocoderSearcher.geoDecode(location);
}