var myloc;
function initialize() {
if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(pos) {
var me = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
myloc.setPosition(me);
myloc.setMap(map);
}, function(error) {
// ...
});
var mapOptions = {
zoom: 14,
center: me,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mylocOptions = {
title: "You are here..."
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
myloc = new google.maps.Marker(mylocOptions);
}
我检查了another question,感觉我到了这个地方。当我打开应用程序(第一次)时,它会要求我允许使用我的位置。我想我简化了myloc选项,我可以使用默认外观和测试标记的所有内容。允许它,但没有任何反应。 me is undefined
。也许我正在以错误的顺序做某事?
如果没有这个位置,我可以使用其他标记来获取地图,所以......它必须是订单吗?我尝试了一些变化......
我想在浏览器放弃一般坐标后最终将一个标记放到地图上。最终这将在数据库中移动和更新,但显然我还没有担心。宝贝踏步......
答案 0 :(得分:1)
首次初始化时,请勿将标记的位置设置为我。因为用户允许浏览器使用其位置后me
可用。当你到达他们的位置时这样做。
var mylocOptions = {
title: "You are here..."
};
if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(pos) {
var me = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
myloc.setPosition(me);
myloc.setMap(map);
map.setCenter(me);
}, function(error) {
// ...
});
也删除
center: me
您可以在其中定义map
。