博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google Maps V3 矩形电子围栏实现
阅读量:5143 次
发布时间:2019-06-13

本文共 2232 字,大约阅读时间需要 7 分钟。

    很多地图定位等需要有电子围栏功能,正巧最近在做某个定位项目也需要这个功能。google了一下没发现好用的代码只好写自己一个了。

 

     很简单,直接上代码

 

<!
DOCTYPE html
>
 
<
html
>
 
<
head
>
 
<
meta 
name
="viewport"
 content
="initial-scale=1.0, user-scalable=no"
 
/>
 
<
meta 
http-equiv
="content-type"
 content
="text/html; charset=UTF-8"
/>
 
<
title
>
Google Maps JavaScript API v3 Example: Marker Simple
</
title
>
 
<
link 
href
="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"
 rel
="stylesheet"
 type
="text/css"
 
/>
 
<
script 
type
="text/javascript"
 src
="http://maps.googleapis.com/maps/api/js?sensor=false"
></
script
>
 
<
script 
type
="text/javascript"
>
 
function
 initialize() {
    
var
 myLatlng 
=
 
new
 google.maps.LatLng(
29.678815
121.426489
);
    
var
 myOptions 
=
 {
        zoom: 
12
,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    
var
 map 
=
 
new
 google.maps.Map(document.getElementById(
"
map_canvas
"
), myOptions);
    
var
 marker 
=
 
new
 google.maps.Marker({
        position: myLatlng,
        map: map,
        title: 
"
Hello World!
"
    });
    
    
var
 rectangle 
=
 
new
 google.maps.Rectangle();    
    
var
 rectOptions 
=
 {
        strokeColor: 
"
#FF0000
"
,
        strokeOpacity: 
0.8
,
        strokeWeight: 
2
,
        fillColor: 
"
#FF0000
"
,
        fillOpacity: 
0.35
,
        map: map,
        clickable:
false
,
        bounds: map.getBounds()
    };
    
    
var
 beginlatlng 
=
 
""
//
记录起始点坐标
    
var
 endlatlng 
=
 
""
//
记录结束点坐标
    
var
 rectBounds 
=
 
""
;
    
var
 SfClick 
=
 
""
;
    
var
 SfMove 
=
 
""
;
    
var
 ClickCount 
=
 
0
//
点击次数    
    SfClick 
=
 google.maps.event.addListener(map, 
'
click
'
function
(e) {
        
var
 begin 
=
 e.latLng;
        ClickCount
++
;
        
if
 (ClickCount 
==
 
1
) {
            SfMove 
=
 google.maps.event.addListener(map, 
"
mousemove
"
,
function
(e) {
                beginlatlng 
=
 begin;
                endlatlng 
=
 e.latLng;
                rectOptions.bounds 
=
 
new
 google.maps.LatLngBounds(beginlatlng, endlatlng);
                rectOptions.map 
=
 map;
                rectangle.setOptions(rectOptions);
            });
        } 
else
 {
            google.maps.event.removeListener(SfMove);
            
if
 (window.confirm(
"
确定该电子围栏范围吗?
"
)) {
                ClickCount 
=
 
0
;
                alert(
'
起始坐标点
'
 
+
 beginlatlng 
+
 
'
\n结束坐标点
'
 
+
 endlatlng)
            } 
else
 {
                ClickCount 
=
 
0
;
                rectOptions.map 
=
 
null
;
                rectangle.setOptions(rectOptions);
            }
        }
    });
}
</
script
>
 
</
head
>
 
<
body 
onLoad
="initialize()"
>
 
  
<
div 
id
="map_canvas"
></
div
>
 
</
body
> 

</html>  

 

   

 注意 Rectangle 的clickable一定要设置为falsh,否则矩形结束不了。如果您在转载的时候能带上出处最好

 

 

 

转载于:https://www.cnblogs.com/relax/archive/2011/08/24/2151838.html

你可能感兴趣的文章
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
xpath
查看>>
parted分区
查看>>
图片标签img
查看>>
JavaScript语言中文参考手册.chm
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
并发编程简介
查看>>
基于K-近邻分类算法的手写识别系统
查看>>
使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
查看>>
PC站跳转M站的方法
查看>>
wow 各职业体验(pvp)
查看>>
Streaming的receiver模式
查看>>
[转载]一个人的失败,99%失败于“脾气”
查看>>
【Nowcoder】玩游戏
查看>>
过滤器(Filter)
查看>>
字符串的操作
查看>>