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);
});
}
};