毕设系列之使用百度地图api实现两地之间的路径查询
这个其实是我看到了百度地图API中官方手册后,慢慢摸索的代码,也就是说东凑西凑的代码。
注意,我使用的是ASP.NET,但是客户端一部分实际上还是js。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Transport1.aspx.cs" Inherits="WebApplication3.Transport.Transport1" %>my dear <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=你的百度API密钥" > </script>
要查询的地址:
查询结果(经度):
查询结果(纬度):
查询结果(时间):
查询结果(路程):
<script type="text/javascript">
var map = new BMapGL.Map("container");//在container中新建一个地图
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
var myGeo = new BMapGL.Geocoder();
var localSearch = new BMapGL.LocalSearch(map);
localSearch.enableAutoViewport();
map.addEventListener('click', function (e) {//点击标记开始读取地点经纬度,这是因为百度地图的api我最开始仅仅找到了根据经纬度查询的方法
document.getElementById("result_").value = e.latlng.lng;
document.getElementById("result_1").value = e.latlng.lat;
});
function searchByStationName() {//进行输入地点的查询
var keyword = document.getElementById("text_").value;
myGeo.getPoint(keyword, function (point) {
if (point) {
map.centerAndZoom(point, 16);//这是我们输入的地址,后面16是地图打开的样式,这个16是可以更改的
map.addOverlay(new BMapGL.Marker(point, { title: keyword }))//在找到的点处做好标记
} else {
alert('您选择的地址没有解析到结果!');
}
}, '中国')
}
function searchRoute() {
var output1 = "";
var output2 = "";
var searchComplete = function (results) {
if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
return;
}
var plan = results.getPlan(0);
output1 += "总时间为:";
output1 += plan.getDuration(true) + "\n"; //获取时间
output2 += "总路程为:";
output2 += plan.getDistance(true) + "\n"; //获取距离
}
var transit = new BMapGL.DrivingRoute(map, {
renderOptions: { map: map },
onSearchComplete: searchComplete,
onPolylinesSet: function () {
setTimeout(function () { document.getElementById("time_").value = output1, document.getElementById("road_").value = output2 }, "1000");
}
});
var start = new BMapGL.Point(119.876341, 18.749703);//这里输入起点的经纬度,这两个值都可以变
var end = new BMapGL.Point(document.getElementById("result_").value, document.getElementById("result_1").value);
transit.search(start, end);
}
</script>
输出结果