首先是js的引用
<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=YOUR_KEY"></script>
騰訊地圖js除了提供基本的功能庫外,還提供了一些有用的附加庫,下面這個是引用了坐標轉換庫的js引用
<script type="text/javascript" charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=YOUR_KEY&libraries=convertor"></script>
其中libraries參數用來指明加載的附加庫,可以指定多個附加庫名稱,
名稱之間用英文半角字符逗號","分隔。支持的附加庫種類:
- drawing 繪圖工具庫,用於在地圖上方繪制折線、多邊形、圓等幾何圖形;
- geometry 幾何運算庫,用於計算地球表面的距離、面積等;
- autocomplete 文本輸入提示庫,用於快速幫助用戶完成檢索關鍵詞輸入;
- convertor 坐標轉換庫,將標准經緯度或其它地圖API經緯度轉換為騰訊經緯度坐標系。
關於附加庫的詳細接口,請參見騰訊地圖的參考手冊。
我這里只需要引用坐標轉換庫
首先是地圖坐標轉換,其實這些在騰訊地圖API中都能找的到,我這邊只是做個筆記,方便下次用到。
//百度地圖坐標轉騰訊地圖坐標 conver: function () { //轉換百度坐標為騰訊坐標 qq.maps.convertor.translate(new qq.maps.LatLng("百度坐標N", "百度坐標E"), 3, function (res) { latlng = res[0]; //console.log(latlng); location.href = "http://apis.map.qq.com/uri/v1/marker?marker=coord:" + latlng.lat + "," + latlng.lng + ";title:想要顯示的坐標名稱&referer=myapp"; })
}
然后是根據地址查詢坐標
selectLoaction: function () { //調用地址解析類 geocoder = new qq.maps.Geocoder({ complete: function (result) { location.href = "http://apis.map.qq.com/uri/v1/marker?marker=coord:" + result.detail.location.lat + "," + result.detail.location.lng + ";title:想要顯示的坐標名稱&referer=myapp"; } }); geocoder.getLocation("需要查詢的地址");
}
最后一個是對標記的操作,在地圖上點擊時添加一個標記,並刪除原來的標記。
//初始坐標
var center = new qq.maps.LatLng(39.916527, 116.397128); map = new qq.maps.Map(document.getElementById('container'), { center: center, zoom: 15 }); //添加監聽事件,獲取鼠標單擊事件 qq.maps.event.addListener(map, 'click', function (event) { //刪除一個初始標記 if (markersArray) { for (i in markersArray) { markersArray[i].setMap(null); } } //添加標記 var marker = new qq.maps.Marker({ position: event.latLng, map: map }); console.log(event.latLng); //刪除原來的標記 qq.maps.event.addListener(map, 'click', function (event) { marker.setMap(null); }); });