百度地图开发总结----3.判断一个点是否在一片区域内
主要用到了BMapLib.GeoUtils.isPointInPolygon(point, apolygon)這個函數,第一個參數為百度坐標點對象,new BMap.Point(x,y),
第二個參數為覆蓋物對象,對象,對象!!!(就在剛才寫demo的時候還傳錯了,傳的坐標數組,結果總是返回false,⊙﹏⊙b汗)。
代碼:
<script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>
//想用這個方法需要引以上這個js文件
<div id="content">
? </div>
? <script type="text/javascript">
var mp = new BMap.Map('content');
? ? ?mp.enableScrollWheelZoom();//地圖隨鼠標滑輪滾動放大縮小的功能
var mypoint=new BMap.Point(117.339937,31.870068);//定義一個坐標對象
//初始化地圖的中心位置
? ? ?mp.centerAndZoom(mypoint, 14); ? //第二個參數代表地圖的放大級數,目前是1-18?
var opt1 = { type: BMAP_NAVIGATION_CONTROL_LARGE } ? ? //導航控件樣式
? ? ?mp.addControl(new BMap.NavigationControl(opt1));
? ? ?mp.addControl(new BMap.OverviewMapControl()); ? ? ? ? //略縮圖控件
? ? ?mp.addControl(new BMap.ScaleControl({ offset: new BMap.Size(75, 500) }));
? ? ?//比例尺控件
? ? ?mp.addControl(new BMap.MapTypeControl()); ? ??
mp.clearOverlays();//清除地圖上的覆蓋物
var apolygon_points=new Array();
apolygon_points.push(new BMap.Point(117.338937,31.880068));
apolygon_points.push(new BMap.Point(117.347992,31.857621));
apolygon_points.push(new BMap.Point(117.314072,31.856394));
var apolygon = new BMap.Polygon(apolygon_points, {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?strokeColor: "red",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?strokeWeight: 2,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?strokeOpacity: 0.5,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fillOpacity: 0.4
? ? ? ? ? ? ? ? ? ? ? ? ?});
mp.addOverlay(apolygon);
var opt={position:new BMap.Point(117.338937,31.880068),offset: new BMap.Size(0, 0)};
var lname="第九區"
var label = new BMap.Label(lname, opt);
mp.addOverlay(label);
var msg="";
var pt=new BMap.Point(117.338937,31.860068);
mp.addOverlay(new BMap.Marker(pt));
if (BMapLib.GeoUtils.isPointInPolygon(pt, apolygon)) {//如果點在區域內,返回true
? ? ? ? ? ? mp.addOverlay(new BMap.Marker(pt));
? ? ? ? ? ? msg = "在" + lname + "區域內"; ??
? ? ?}
else{
? ? ? ? ? ? mp.addOverlay(new BMap.Marker(pt));
? ? ? ? ? ? msg = "在" + lname + "區域外"; ??
}
var label2=new BMap.Label(msg,{position:pt,offset:new BMap.Size(0,0)});
mp.addOverlay(label2);
</script>
效果:
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的百度地图开发总结----3.判断一个点是否在一片区域内的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 志高空调柜机的遥控器坏了,怎样手动开机,
- 下一篇: 装修好后悔没换防盗门的理由重新安装防盗门