检索POI
矩形检索
searchInBounds方法提供矩形区域检索服务。矩形范围搜索将根据您提供的视野范围提供搜索结果。如下示例,展示在矩形区域内搜索港口:
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 mapBounds = new FMap.Map('mapBounds', {
// 设置中心点坐标
center: new FMap.LatLng(38.92705, 121.6580833),
// 设置地图缩放级别
zoom: 13,
maxZoom: 17,
minZoom: 3,
// 设置地图实例瓦片层
layers: [layer]
});
var inputValArray = ["港口", "41.001178", "124.264514", "37.702655", "114.081617", "", "", "0"];
if (inputValArray[0] != "") {
var url = "http://map.botaisoft.com/apis/";
var localSearcher = new FMap.LocalSearch(new FMap.LocalSearchOptions(url, function (result) {
for (var i = 0; i < result.getPoiList().length; i++) {
var template = '<p>' + result.getPoiList()[i].name + result.getPoiList()[i].address + '</p>';
var marker = FMap.marker([result.getPoiList()[i].point.lat, result.getPoiList()[i].point.lng]).addTo(mapBounds);
marker.bindPopup(template).openPopup();
}
}, token
));
var options = new FMap.LocalSearchSetting(inputValArray[0], 0, 0);
var northEast = new FMap.LatLng(parseFloat(inputValArray[1]), parseFloat(inputValArray[2]));
var southWest = new FMap.LatLng(parseFloat(inputValArray[3]), parseFloat(inputValArray[4]));
var bounds = new FMap.LatLngBounds(southWest, northEast);
localSearcher.searchInBounds(options, bounds, parseInt(inputValArray[7]));
}
周边(圆)检索
searchNearby方法提供圆形区域检索服务。您可以在某个地点附近进行搜索,也可以在某一个特定结果点周围进行搜索。下面示例展示如何在某点附近搜索电影院:
// 设置地图瓦片层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 mapCircle = new FMap.Map('mapCircle', {
// 设置中心点坐标
center: new FMap.LatLng(38.92705, 121.6580833),
// 设置地图缩放级别
zoom: 13,
maxZoom: 17,
minZoom: 3,
// 设置地图实例瓦片层
layers: [layer]
});
var inputValArray = ["电影院", "38.919184", "121.616318", "3000", "7", "0", "0"];
if (inputValArray[0] != "") {
var url = "http://map.botaisoft.com/apis/";
var localSearcher = new FMap.LocalSearch(new FMap.LocalSearchOptions(url, function (result) {
for (var i = 0; i < result.getPoiList().length; i++) {
var template = '<p>' + result.getPoiList()[i].name + result.getPoiList()[i].address + '</p>';
var marker = FMap.marker([result.getPoiList()[i].point.lat, result.getPoiList()[i].point.lng]).addTo(mapCircle);
marker.bindPopup(template).openPopup();
}
}, token
));
var options = new FMap.LocalSearchSetting(inputValArray[0]/*关键字*/, parseInt(inputValArray[5])/*每页个数*/, parseInt(inputValArray[4])/*指定页数*/)
var location = new FMap.LatLng(Number(inputValArray[1])/*纬度*/, Number(inputValArray[2]/*经度*/));
localSearcher.searchNearby(options, location, parseInt(inputValArray[3])/*半径*/, parseInt(inputValArray[6]/*检索范围*/));
}