"use strict"; // eslint-disable-line
var map;
var initialLocation;
// TODO: Initialize and display Google Map
function initialize() {
//get current location
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
}
var mapProp = {
center:initialLocation,
zoom:6,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker = new google.maps.Marker({
position: initialLocation,
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
我正在尝试使用Javascript将标记设置到我当前的位置。但是,当我加载地图时,地图将以我当前位置为中心,不会出现任何标记?
答案 0 :(得分:0)
一切看起来都不错,只需在以下部分添加 marker.setPosition(initialLocation); :
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
marker.setPosition(initialLocation);// ****** missing line ******
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
};
这是一个有效的JSFiddle,需要进行必要的修改。
密钥来自Google MAP API示例,需要使用您自己的内容进行更新,您可以在此处获取:Google MAP API。
您可能需要重新加载JSFiddle示例,因为来自googleapis文件的async延迟似乎存在问题。等几秒钟然后按RUN。
答案 1 :(得分:0)
只需确保变量initialLocation的内容即可。 如果它具有正确的lon / lat,则会出现标记。 在以下情况之前,您必须确保它具有正确的值: var marker = new google.maps.Marker({ position:initialLocation, 地图:地图 });