Google maps api 3 Geofence-谷歌地图无法读取未定义的应用属性

Google maps api 3 Geofence-谷歌地图无法读取未定义的应用属性,google-maps-api-3,geofencing,Google Maps Api 3,Geofencing,我已经阅读了所有关于这个主题的文章,并从()和()中获得了灵感 我创造了这个 var runMaps=function(){ if(导航器.地理位置){ navigator.geolocation.getCurrentPosition(函数(位置){ map=new google.maps.map(document.getElementById('map'){ 中心:{ 纬度:位置坐标纬度, lng:position.coords.longitude }, 缩放:18 }); var all_覆

我已经阅读了所有关于这个主题的文章,并从()和()中获得了灵感

我创造了这个

var runMaps=function(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
map=new google.maps.map(document.getElementById('map'){
中心:{
纬度:位置坐标纬度,
lng:position.coords.longitude
},
缩放:18
});
var all_覆盖=[];
变量选择形状;
var drawingManager=new google.maps.drawing.drawingManager({
drawingMode:google.maps.drawing.OverlyType.MARKER,
drawingControl:对,
drawingControlOptions:{
位置:google.maps.ControlPosition.TOP_CENTER,
绘图模式:[
//google.maps.drawing.overlytype.MARKER,
google.maps.drawing.overlytype.CIRCLE,
google.maps.drawing.OverlyType.POLYGON,
google.maps.drawing.overlytype.RECTANGLE
]
},
标记选项:{
图标:“images/beachflag.png”
},
循环操作:{
填充颜色:'#ffff00',
填充不透明度:0.2,
冲程重量:3,
可点击:false,
是的,
zIndex:1
},
多克隆选择:{
可点击:正确,
真的,
是的,
填充颜色:'#ffff00',
不透明度:1,
},
矩形选项:{
可点击:正确,
真的,
是的,
填充颜色:'#ffff00',
填充不透明度:0.5,
}
});
函数{
如果(selectedShape){
selectedShape.setEditable(false);
selectedShape=null;
}
}
功能选择(形状){
选举();
selectedShape=形状;
shape.setEditable(true);
google.maps.event.addListener(selectedShape.getPath(),'insert_at',getPolygonCoords(shape));
google.maps.event.addListener(selectedShape.getPath(),'set_at',getPolygonCoords(shape));
}
函数deleteSelectedShape(){
如果(selectedShape){
selectedShape.setMap(空);
}
}
函数deleteAllShape(){
对于(变量i=0;i
问题
画完<
var runMaps = function() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {

            map = new google.maps.Map(document.getElementById('map'), {
                center: {
                    lat: position.coords.latitude,
                    lng: position.coords.longitude
                },
                zoom: 18
            });
            var all_overlays = [];
            var selectedShape;
            var drawingManager = new google.maps.drawing.DrawingManager({
                drawingMode: google.maps.drawing.OverlayType.MARKER,
                drawingControl: true,
                drawingControlOptions: {
                    position: google.maps.ControlPosition.TOP_CENTER,
                    drawingModes: [
                        //google.maps.drawing.OverlayType.MARKER,
                        google.maps.drawing.OverlayType.CIRCLE,
                        google.maps.drawing.OverlayType.POLYGON,
                        google.maps.drawing.OverlayType.RECTANGLE
                    ]
                },
                markerOptions: {
                    icon: 'images/beachflag.png'
                },
                circleOptions: {
                    fillColor: '#ffff00',
                    fillOpacity: 0.2,
                    strokeWeight: 3,
                    clickable: false,
                    editable: true,
                    zIndex: 1
                },
                polygonOptions: {
                    clickable: true,
                    draggable: true,
                    editable: true,
                    fillColor: '#ffff00',
                    fillOpacity: 1,

                },
                rectangleOptions: {
                    clickable: true,
                    draggable: true,
                    editable: true,
                    fillColor: '#ffff00',
                    fillOpacity: 0.5,
                }
            });

            function clearSelection() {
                if (selectedShape) {
                    selectedShape.setEditable(false);
                    selectedShape = null;
                }
            }

            function setSelection(shape) {
                clearSelection();
                selectedShape = shape;
                shape.setEditable(true);
                google.maps.event.addListener(selectedShape.getPath(), 'insert_at', getPolygonCoords(shape));
                google.maps.event.addListener(selectedShape.getPath(), 'set_at', getPolygonCoords(shape));
            }

            function deleteSelectedShape() {
                if (selectedShape) {
                    selectedShape.setMap(null);
                }
            }

            function deleteAllShape() {
                for (var i = 0; i < all_overlays.length; i++) {
                    all_overlays[i].overlay.setMap(null);
                }
                all_overlays = [];
            }

            function CenterControl(controlDiv, map) {

                // Set CSS for the control border.
                var controlUI = document.createElement('div');
                controlUI.style.backgroundColor = '#fff';
                controlUI.style.border = '2px solid #fff';
                controlUI.style.borderRadius = '3px';
                controlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)';
                controlUI.style.cursor = 'pointer';
                controlUI.style.marginBottom = '22px';
                controlUI.style.textAlign = 'center';
                controlUI.title = 'Select to delete the shape';
                controlDiv.appendChild(controlUI);

                // Set CSS for the control interior.
                var controlText = document.createElement('div');
                controlText.style.color = 'rgb(25,25,25)';
                controlText.style.fontFamily = 'Roboto,Arial,sans-serif';
                controlText.style.fontSize = '16px';
                controlText.style.lineHeight = '38px';
                controlText.style.paddingLeft = '5px';
                controlText.style.paddingRight = '5px';
                controlText.innerHTML = 'Delete Selected Area';
                controlUI.appendChild(controlText);

                // Setup the click event listeners: simply set the map to Chicago.
                controlUI.addEventListener('click', function() {
                    deleteSelectedShape();
                });

            }
            drawingManager.setMap(map);
            var getPolygonCoords = function(newShape) {
                console.log("We are one");
                var len = newShape.getPath().getLength();
                for (var i = 0; i < len; i++) {
                    console.log(newShape.getPath().getAt(i).toUrlValue(6));
                }
            };

            google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {

                all_overlays.push(event);
                if (event.type !== google.maps.drawing.OverlayType.MARKER) {
                    drawingManager.setDrawingMode(null);
                    //Write code to select the newly selected object.

                    var newShape = event.overlay;
                    newShape.type = event.type;
                    google.maps.event.addListener(newShape, 'click', function() {
                        setSelection(newShape);
                    });

                    setSelection(newShape);
                }
            });


            var centerControlDiv = document.createElement('div');
            var centerControl = new CenterControl(centerControlDiv, map);

            centerControlDiv.index = 1;
            map.controls[google.maps.ControlPosition.BOTTOM_CENTER].push(centerControlDiv);
        });
    }
};