百度地圖api應(yīng)用標(biāo)注地理位置信息(js版)
有時做了一些東西沒有記錄,而過一段時間再看的時候,有會忘記了。需要在重新在看一遍。
百度地圖javascript api可以參考 http://developer.baidu.com/map/reference/
示例:http://developer.baidu.com/map/jsdemo.htm
更多百度地圖的介紹http://www.cnblogs.com/milkmap/tag/%E5%9C%B0%E5%9B%BEAPI/
里面介紹的非常詳細(xì)。
弄了一個百度地圖來標(biāo)注地理位置信息,通過百度api來獲取地址。這地圖api是javascript版
添加顯示顯示的div控件
<div>
<p>搜索:
<input id="txtarea" type="text" size="50" /> <input id="areaSearch"
type="button" value="搜索" style="cursor: pointer" />
</p>
<p> 緯度:<input name="txtlatitude" type="text" id="txtlatitude" style="width:200px;" />
經(jīng)度:<input name="txtLongitude" type="text" id="txtLongitude" style="width:200px;" />
標(biāo)注點所在區(qū)域:<input name="txtAreaCode" type="text" id="txtAreaCode" style="width:200px;" />
</p>
</div>
<div style="width: 420px; height: 340px; border: 1px solid gray; float: left;" id="container">
</div>
<div style="width: 350px; height: 340px;" id="Div1">
<div>
<div class="sel_container">
<strong id="curCity">北京市</strong> [<a id="curCityText" href="javascript:void(0)">更換城市</a>]</div>
<div class="map_popup" id="cityList" style="display: none;">
<div class="popup_main">
<div class="title">
城市列表</div>
<div class="cityList" id="citylist_container">
</div>
<button id="popup_close">
</button>
</div>
</div>
</div>
</div>
在引用引用
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.min.js"></script> //jquery庫
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script> //百度地圖的文件
<script type="text/javascript" src="http://api.map.baidu.com/library/CityList/1.2/src/CityList_min.js"></script> //城市選擇的
添加代碼
<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(117.10, 40.13), 11);
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
map.addControl(new BMap.MapTypeControl());
//搜索
document.getElementById("areaSearch").onclick = function () {
// 創(chuàng)建地址解析器實例
var myGeo = new BMap.Geocoder();
var searchTxt = document.getElementById("txtarea").value;
// 將地址解析結(jié)果顯示在地圖上,并調(diào)整地圖視野
myGeo.getPoint(searchTxt, function (point) {
if (point) {
map.centerAndZoom(point, 16);
document.getElementById("txtlatitude").value = point.lat;
document.getElementById("txtLongitude").value = point.lng;
var pointMarker = new BMap.Point(point.lng, point.lat);
geocodeSearch(pointMarker);
map.addOverlay(new BMap.Marker(point));
}
else
alert("搜索不到結(jié)果");
}, "全國");
}
map.enableScrollWheelZoom();
// 創(chuàng)建CityList對象,并放在citylist_container節(jié)點內(nèi)
var myCl = new BMapLib.CityList({ container: "citylist_container", map: map });
// 給城市點擊時,添加相關(guān)操作
myCl.addEventListener("cityclick", function (e) {
// 修改當(dāng)前城市顯示
document.getElementById("curCity").innerHTML = e.name;
// 點擊后隱藏城市列表
document.getElementById("cityList").style.display = "none";
});
// 給“更換城市”鏈接添加點擊操作
document.getElementById("curCityText").onclick = function () {
var cl = document.getElementById("cityList");
if (cl.style.display == "none") {
cl.style.display = "";
} else {
cl.style.display = "none";
}
};
// 給城市列表上的關(guān)閉按鈕添加點擊操作
document.getElementById("popup_close").onclick = function () {
var cl = document.getElementById("cityList");
if (cl.style.display == "none") {
cl.style.display = "";
} else {
cl.style.display = "none";
}
};
map.addEventListener("click", function (e) {
document.getElementById("txtlatitude").value = e.point.lat;
document.getElementById("txtLongitude").value = e.point.lng;
map.clearOverlays();
var pointMarker = new BMap.Point(e.point.lng, e.point.lat); // 創(chuàng)建標(biāo)注的坐標(biāo)
addMarker(pointMarker);
geocodeSearch(pointMarker);
});
function addMarker(point) {
var myIcon = new BMap.Icon("mk_icon.png", new BMap.Size(21, 25),
{ offset: new BMap.Size(21, 21),
imageOffset: new BMap.Size(0, -21)
});
var marker = new BMap.Marker(point, { icon: myIcon });
map.addOverlay(marker);
}
function geocodeSearch(pt) {
var myGeo = new BMap.Geocoder();
myGeo.getLocation(pt, function (rs) {
var addComp = rs.addressComponents;
document.getElementById("txtAreaCode").value = addComp.province + ", " + addComp.city + ", " + addComp.district;
});
}
</script>
效果圖
這標(biāo)注的源碼:百度地圖標(biāo)注源碼
相關(guān)文章
Cropper.js進(jìn)階之裁剪后保存至服務(wù)器實現(xiàn)詳解
這篇文章主要為大家介紹了Cropper.js進(jìn)階之裁剪后保存至服務(wù)器實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05javascript中的previousSibling和nextSibling的正確用法
這篇文章主要介紹了javascript中的previousSibling和nextSibling的正確用法的相關(guān)資料,需要的朋友可以參考下2015-09-09javascript中innerText和innerHTML屬性用法實例分析
這篇文章主要介紹了javascript中innerText和innerHTML屬性用法,實例分析了javascript中innerText和innerHTML屬性的作用和相關(guān)的使用技巧,需要的朋友可以參考下2015-05-05JavaScript 模擬類機(jī)制及私有變量的方法及思路
這篇文章介紹了JavaScript模擬類機(jī)制及私有變量的方法及思路,有需要的朋友可以參考一下2013-07-07JavaScript性能優(yōu)化之小知識總結(jié)
JavaScript的性能問題不容小覷,這就需要我們開發(fā)人員在編寫JavaScript程序時多注意一些細(xì)節(jié),本文給大家介紹javascript性能優(yōu)化之小知識總結(jié),需要的朋友可以參考下2015-11-11一文搞懂JavaScript中bind,apply,call的實現(xiàn)
bind、call和apply都是Function原型鏈上面的方法,因此不管是使用function聲明的函數(shù),還是箭頭函數(shù)都可以直接調(diào)用。本文就帶你看看如何實現(xiàn)bind、call和apply2022-06-06