【发布时间】:2012-01-06 17:42:07
【问题描述】:
我正在使用 Google Map API V3 构建移动地图。这与标准地图有点不同,因为我有一些标记类别,你可以打开/关闭。一切都很好,但我似乎无法让地理定位工作。我已经尝试了所有可以找到的组合和代码 sn-p,最多我可以让它注册位置请求,但无论我做什么,它都不会在那里显示标记。我确定我在做一些非常简单的错误,但我对 Javascript 很陌生,所以答案是在逃避我。
这是我当前代码的缩短版本(包含所有示例,但删除了很多重复变量)。这个例子不包括地理定位功能,因为我已经尝试了很多不同的方式,我不确定我什至会在这里放哪一个。 toggleMarkers() 函数是我用来打开/关闭标记的函数,我猜这就是显示地理位置标记的问题所在。如果你能告诉我如何在这段代码中实现地理定位,我将不胜感激!
var markers = [];
function initialize() {
//Setting Map
var mapOptions = {
zoom: 18,
center: new google.maps.LatLng(45.73158,-122.636277),
mapTypeId: 'satellite'
}
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
map.setTilt(0);
//Marker Categories
var markerBuildings = {
category: 'buildings',
}
var markerParking = {
category: 'parking',
}
// Icons
var iconBuilding = new google.maps.MarkerImage('images/building.png',
new google.maps.Size(32, 37),
new google.maps.Point(0,0),
new google.maps.Point(16,32));
var iconAmphitheater = new google.maps.MarkerImage('images/amphitheater.png',
new google.maps.Size(32, 37),
new google.maps.Point(0,0),
new google.maps.Point(16,32));
//Coordinates
//Buildings
var vmcb = new google.maps.Marker({
position: new google.maps.LatLng(45.730513,-122.638106),
map: map,
url: 'http://www.google.com/',
icon: iconBuilding,
data: markerBuildings
});
markers.push(vmcb);
var vadm = new google.maps.Marker({
position: new google.maps.LatLng(45.730899,-122.637742),
map: map,
url: 'http://www.google.com/',
icon: iconBuilding,
data: markerBuildings
});
markers.push(vadm);
}
function toggleMarkers(attr,val) {
if (markers){
for (i in markers) {
if(markers[i].data[attr] == val){
var visibility = (markers[i].getVisible() == true) ? false : true;
markers[i].setVisible(visibility);
}
}
}
}
【问题讨论】:
-
不确定您在此代码上下文中所说的地理位置是什么意思。您可能是指地理编码:例如,获取街道地址并将其转换为 (lat,lng)?
-
您的地理位置代码在哪里。您粘贴的代码似乎是正确的?
标签: javascript google-maps google-maps-api-3 geolocation google-maps-markers