百度地圖通過搜索精確標記位置或手動標記

var map = new BMap.Map('map')
//添加比例尺
map.addControl(new BMap.NavigationControl())
//設置中心點及縮放
const center_lng = `{:str2arr($row[juweihui_lnglat])[0]}` || 117.197974
const center_lat = `{:str2arr($row[juweihui_lnglat])[1]}` || 35.090709
console.log(center_lng, center_lat)
map.centerAndZoom(new BMap.Point(center_lng, center_lat), 17)

var marker
//初始化座標點
addMarker(`{:str2arr($row[juweihui_lnglat])[0]}`, `{:str2arr($row[juweihui_lnglat])[1]}`)
//監聽鼠標點擊
map.addEventListener("click", function (e) {
	//手動定義座標
	addMarker(e.point.lng, e.point.lat)
})

function addMarker(lng, lat) {
	map.removeOverlay(marker) //清除覆蓋物
	if (lng && lat) {
		var point = new BMap.Point(lng, lat)
		marker = new BMap.Marker(point) //創建標註
		map.addOverlay(marker) //將標註添加到地圖中
		marker.setAnimation(BMAP_ANIMATION_BOUNCE) //跳起來
		$('[name=juweihui_lnglat]').val(lng + "," + lat)
	}
}

//定義地圖搜索
var local = new BMap.LocalSearch(map, {
	renderOptions: {
		map: map
		, panel: "r-result"
	}
	, onInfoHtmlSet: function (res) {
		//通過搜索結果標記座標
		addMarker(res.point.lng, res.point.lat)
	}
})

//通過關鍵字搜索
$('#map_keyword').on('input propertychange', function () {
	local.search($(this).val())
})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章