最近再做一个项目需要用户地图定位功能,因此研究了一下百度地图的功能。
多了不说上代码:
php版
<span style="font-family:Microsoft YaHei;font-size:14px;"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<title>百度地图搜索</title>
<script type="text/javascript" src="http://mapclick.map.baidu.com/data/98_36_11_018.js"></script>
<script type="text/javascript"
src="http://api.map.baidu.com/api?v=1.5&ak=1jwM1UGS8wPTvaiUSUaUnuOG"></script>
</head>
<body>
<div style="width:520px;height:340px;border:1px solid gray" id="container"></div>
要查询的地址:<input id="text_" type="text" value="山东济南泉城广场" style="margin-right:100px;"/>
查询结果(经纬度):<input id="result_" type="text" />
<input type="button" value="地址查询经纬度" onclick="searchByStationName();"/>
<div id="r-result">
城市名: <input id="cityName" type="text" style="width:100px; margin-right:10px;" />
<input type="button" value="查询" onclick="theLocation()" />
</div>
<div id="results" style="font-size:13px;margin-top:10px;"></div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
//为了使用地图更加方便,我们还可以添加上缩放的平移控件,以及地图的缩略图控件,并设置他要显示的位置:
map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件
map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件
map.addControl(new BMap.OverviewMapControl({ isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT })); //右下角,打开
//var local = new BMap.LocalSearch(map, {
// renderOptions: {map: map, panel: "results"}
//});
//var opts = {anchor: BMAP_ANCHOR_TOP_RIGHT, offset: map.getCenter()};
////var opts = {anchor: BMAP_ANCHOR_TOP_RIGHT, offset: new BMap.Size(10, 10)};
//map.addControl(new BMap.NavigationControl(opts));
//local.search("北京市海淀区上地地铁站");
//1.构建搜索
var localSearch = new BMap.LocalSearch(map);
localSearch.enableAutoViewport(); //允许自动调节窗体大小
//2.开始做最关键的一步了,就是获取地址的具体经纬度:
var searchByStationName = function(){
var keyword = document.getElementById("text_").value;
//搜索回调方法
localSearch.setSearchCompleteCallback(function (searchResult) {
alert(searchResult);
var poi = searchResult.getPoi(0);
document.getElementById("result_").value = poi.point.lng + "," + poi.point.lat; //获取经度和纬度,将结果显示在文本框中
map.centerAndZoom(poi.point, 13);
});
localSearch.search(keyword);
}
/**********************************
***********百度地图API功能*********
**********************************/
//1.城市名定位
//var map = new BMap.Map("allmap");
//var point = new BMap.Point(116.331398,39.897445);
//map.centerAndZoom(point,11);
function theLocation(){
var city = document.getElementById("cityName").value;
if(city != ""){
map.centerAndZoom(city,11); // 用城市名设置地图中心点
}
}
//2.IP定位获取当前城市
function myFun(result){
var cityName = result.name;
map.setCenter(cityName);
alert("当前定位城市:"+cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);
//3.单击获取点击的经纬度
//单击获取点击的经纬度
var longitude = "";//经度
var latitude = "";//纬度
map.addEventListener("click",function(e){
alert("经度:"+e.point.lng + "," + "纬度:" +e.point.lat);
longitude = e.point.lng;
latitude = e.point.lat;
if(longitude != "" && latitude != ""){
map.clearOverlays();
var new_point = new BMap.Point(longitude,latitude);
var marker = new BMap.Marker(new_point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.panTo(new_point);
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
}
});
//4 用经纬度设置地图中心点
/*function theLocation(){
if(longitude != "" && latitude != ""){
map.clearOverlays();
var new_point = new BMap.Point(longitude,latitude);
var marker = new BMap.Marker(new_point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.panTo(new_point);
}
}*/
//5.逆地址解析,点击地图展示详细地址
var geoc = new BMap.Geocoder();
map.addEventListener("click", function(e){
var pt = e.point;
geoc.getLocation(pt, function(rs){
var addComp = rs.addressComponents;
alert(addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber);
});
});
</script>
</span>
附上baidu地图APIdemo地址:http://developer.baidu.com/map/jsdemo.htm
分享到:
相关推荐
百度地图+百度导航无缝对接,不存在百度地图与百度导航有jar包冲突的问题,100%兼容在一起
C# winfrom 百度离线瓦片地图 瓦片图连接网络自动下载到本地 支持 区域搜索 距离测量 截图 标记 画图 支持卫星地图模式
vue 离线百度地图加瓦片在线器,供大家学习,使用vue2,百度v3,也制作了热力图,瓦片不全,大家可也根据自身需要下载瓦片。
通过api获取到百度地图经纬度,再转换为腾讯地图经纬,用于夸地图规划路线,获取起点到终点距离等。。。
asp.net调用百度地图
【python】 AI绘画对接百度API源码 可视化 【python】 AI绘画对接百度API源码 可视化 【python】 AI绘画对接百度API源码 可视化 【python】 AI绘画对接百度API源码 可视化 【python】 AI绘画对接百度API源码 可视化 ...
使用百度地图API实现轨迹回放
自定义标注覆盖物(Custom Overlay)是百度地图中的一种功能,它允许开发者在地图上绘制自定义的标记物,以更符合自己的业务需求和设计风格。通过自定义标注覆盖物,你可以在地图上添加各种类型的标记,如图标、文字...
百度地图切图工具是一款切图工具,百度地图切图工具根据计算机内存大小可支持2万像素大图切图支持无缝对接,实现无偏移切图,不用输入坐标,直接拖动图片在地图上自动选坐标,全过程程序自动完成,快来下载体验吧。...
该资源支持高德地图,百度地图,腾讯地图,使用方便,支持智能搜索,经纬度定位等共功能,移植性高。是一款特别适合前端使用的插件以及后台快速开发使用的插件。
PHP对接百度翻译接口API 实现多国语言翻译
js脚本和c#技术的应用 ,是在线板,没有离线功能
4.调用百度地图的APP 需要在 AndroidManifest.xml 添加 android:name="baidumapsdk.demo.DemoApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > 这里需要添加key,创建...
能实现停车,取车、查询停车信息、计费,摄像头获取车牌信息等功能 用开发板的LED灯模拟抬杆的情况
php对接百度翻译代码
C#开发的.NET地图控件Demo。极地图.NET控件为二次开发而生,无需购买地图数据即可快速构建桌面GIS地图应用。专业、简单、易用的二次开发接口,可应用于学术科研、工程、规划、设计等工作,在测绘、地址、交通、电力...
unity2020_3_47f1c1 对接百度语音sdk 1.语音转文字 2.文字转语音
01 H3C S5500与思科3750对接二层链路聚合的典型组网配置案例 02 H3C S5500与思科2960对接二层链路聚合的典型组网配置案例 03 H3C S6800与思科3560对接二层链路聚合典型组网配置案例 04 H3C S6800与思科2960对接二...
leaflet加载百度地图瓦片图片,坐标已根据网上提供的方法进行了较正,并调用百度web服务API获取步行线路规划进行展示,可拖拽起始坐标点进行线路更新