Javascript Google映射对象文本内部的代码
我正在尝试为谷歌地图脚本创建一个包装器对象,但由于某些原因,它似乎不起作用-有人能看看下面的代码并告诉我我做错了什么吗Javascript Google映射对象文本内部的代码,javascript,google-maps,object-literal,Javascript,Google Maps,Object Literal,我正在尝试为谷歌地图脚本创建一个包装器对象,但由于某些原因,它似乎不起作用-有人能看看下面的代码并告诉我我做错了什么吗 var cmdMapObject = { canvas : 'map-canvas', latLng : '-25.344, 131.036', zoom : 14, myLocation : '', poly : '', map : '', markers : [], path : '', addPoint : function(event) { "use stric
var cmdMapObject = {
canvas : 'map-canvas',
latLng : '-25.344, 131.036',
zoom : 14,
myLocation : '',
poly : '',
map : '',
markers : [],
path : '',
addPoint : function(event) {
"use strict";
// add the latitude and longitute to array after the last item
cmdMapObject.path.insertAt(cmdMapObject.path.length, event.latLng);
// create new marker
var marker = new google.maps.Marker({
position: event.latLng,
map: cmdMapObject.map,
draggable: true
});
// add new marker to the array
cmdMapObject.markers.push(marker);
// set tooltip title to the marker
marker.setTitle("#" + cmdMapObject.path.length);
// remove marker on click
google.maps.event.addListener(marker, 'click', function() {
// remove marker from the map
marker.setMap(null);
// remove location from array and path
for (var i = 0, ml = cmdMapObject.markers.length; i < ml && cmdMapObject.markers[i] != marker; ++i) {
cmdMapObject.markers.splice(i, 1);
cmdMapObject.path.removeAt(i);
}
}
);
// add listener to draggend event to change the position of the marker
// when dragging has ended
google.maps.event.addListener(marker, 'dragend', function() {
for (var i = 0, ml = cmdMapObject.markers.length; i < ml && cmdMapObject.markers[i] != marker; ++i) {
var thisNewPosition = marker.getPosition();
cmdMapObject.markers[i]['position'] = thisNewPosition;
cmdMapObject.path.setAt(i, thisNewPosition);
}
});
},
initialize : function() {
"use strict";
cmdMapObject.path = new google.maps.MVCArray;
cmdMapObject.myLocation = new google.maps.LatLng(cmdMapObject.latLng);
cmdMapObject.map = new google.maps.Map(document.getElementById(cmdMapObject.canvas), {
zoom: cmdMapObject.zoom,
center: cmdMapObject.myLocation,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
cmdMapObject.poly = new google.maps.Polygon({
strokeWeight: 3,
fillColor: '#5555FF'
});
cmdMapObject.poly.setMap(cmdMapObject.map);
cmdMapObject.poly.setPaths(new google.maps.MVCArray(cmdMapObject.path));
google.maps.event.addListener(cmdMapObject.map, 'click', cmdMapObject.addPoint);
},
mapInit : function() {
"use strict";
google.maps.event.addDomListener(window, 'load', cmdMapObject.initialize);
}
};
cmdMapObject.mapInit();
var cmdMapObject={
画布:“地图画布”,
板条:'-25.344131.036',,
缩放:14,
myLocation:“”,
保利:“,
地图:“”,
标记:[],
路径:“”,
addPoint:函数(事件){
“严格使用”;
//将纬度和经度添加到最后一项之后的数组中
cmdMapObject.path.insertAt(cmdMapObject.path.length,event.latLng);
//创建新标记
var marker=new google.maps.marker({
位置:event.latLng,
映射:cmdMapObject.map,
德拉格布尔:是的
});
//向数组中添加新标记
cmdMapObject.markers.push(标记);
//将工具提示标题设置为标记
marker.setTitle(“#”+cmdMapObject.path.length);
//单击删除标记
google.maps.event.addListener(标记'click',函数(){
//从地图上删除标记
marker.setMap(空);
//从数组和路径中删除位置
对于(var i=0,ml=cmdMapObject.markers.length;i
我得到的是左侧的缩放滑块、地图/卫星按钮和底部的版权声明,但没有地图。问题是:
latLng : '-25.344, 131.036'
这是一根绳子。它应该是一个google.maps.LatLng对象。那么当你在这里使用它时:
cmdMapObject.myLocation = new google.maps.LatLng(cmdMapObject.latLng);
您需要将其从字符串转换为两个数字(-25.344131.036),或者将其设置为google.maps.LatLng对象:
cmdMapObject.myLocation = cmdMapObject.latLng;
好的-我已经弄明白了-我使用了构造函数方法而不是文本对象:
function cmdMapObject() {
var thisObj = this;
var canvas = 'map-canvas';
var latLng = [ '-25.344', '131.036' ];
var zoom = 14;
var myLocation = null;
var poly = null;
var map = null;
var markers = [];
var path = new google.maps.MVCArray;
this.addPoint = function(event) {
"use strict";
// add the latitude and longitute to array after the last item
path.insertAt(path.length, event.latLng);
// create new marker
var marker = new google.maps.Marker({
position: event.latLng,
map: map,
draggable: true
});
// add new marker to the array
markers.push(marker);
// set tooltip title to the marker
marker.setTitle("#" + path.length);
// remove marker on click
google.maps.event.addListener(marker, 'click', function() {
// remove marker from the map
marker.setMap(null);
// remove location from array and path
for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
markers.splice(i, 1);
path.removeAt(i);
});
// add listener to draggend event to change the position of the marker
// when dragging has ended
google.maps.event.addListener(marker, 'dragend', function() {
for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
var thisNewPosition = marker.getPosition();
markers[i]['position'] = thisNewPosition;
path.setAt(i, thisNewPosition);
});
};
this.initialize = function() {
"use strict";
myLocation = new google.maps.LatLng(latLng[0], latLng[1]);
map = new google.maps.Map(document.getElementById(canvas), {
zoom: zoom,
center: myLocation,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
poly = new google.maps.Polygon({
strokeWeight: 3,
fillColor: '#5555FF'
});
poly.setMap(map);
poly.setPaths(new google.maps.MVCArray([path]));
// bind the click event to the map to trigger polygon drawing
google.maps.event.addListener(map, 'click', function(event) {
thisObj.addPoint(event);
});
};
this.mapInit = function() {
"use strict";
google.maps.event.addDomListener(window, 'load', function() {
thisObj.initialize();
});
}
};
var mapPolygon = new cmdMapObject();
mapPolygon.mapInit();
函数cmdMapObject(){
var thisObj=此;
var canvas='map canvas';
var latLng=['-25.344','131.036'];
var=14;
var myLocation=null;
var-poly=null;
var-map=null;
var标记=[];
var path=new google.maps.MVCArray;
this.addPoint=函数(事件){
“严格使用”;
//将纬度和经度添加到最后一项之后的数组中
path.insertAt(path.length,event.latLng);
//创建新标记
var marker=new google.maps.marker({
位置:event.latLng,
地图:地图,
德拉格布尔:是的
});
//向数组中添加新标记
标记器。推(标记器);
//将工具提示标题设置为标记
marker.setTitle(“#”+path.length);
//单击删除标记
google.maps.event.addListener(标记'click',函数(){
//从地图上删除标记
marker.setMap(空);
//从数组和路径中删除位置
对于(变量i=0,i=markers.length;i
感谢所有参与的人-仍然不知道谁投了反对票-我是说认真的-如果我知道我不会问。你想使用
google.maps.event.adddomstener(窗口“加载”,