2013-03-19 50 views
0

我想在谷歌地图添加标记,我有这样的代码问题添加标记,谷歌地图在浏览器

<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?key=myKey&sensor=true"> 
</script> 
<script type="text/javascript"> 
    function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(56.33481154165235, 11.107177734375), 
     zoom: 7, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 
    setMarker(); 
    } 

    // Function for adding a marker to the page. 
function addMarker(location) { 
    marker = new google.maps.Marker({ 
     position: location, 
     map: map 
    }); 
} 

// Testing the addMarker function 
function setMarker() { 
     CentralPark = new google.maps.LatLng(55.671389288295465, 12.5601196289062); 
     addMarker(CentralPark); 
} 


google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

这显示了地图,但没有标记。

在此之前,感谢您的帮助!

回答

0

问题是map是初始化函数中的局部变量,所以它不能从其他函数中获得。做一个全局变量。

或者将地图对象作为参数传递给您的setMarker/addMarker函数。

另外我不确定为什么你有addMarker和setMarker作为单独的函数(除非你打算在后面扩展这些功能,这些功能解释了你为什么要这样分割它们)。我在这个答案中将它们合并为一个,尽管从技术上讲,您的方法没有任何问题(这只是非全局性的map这是您的问题)。

试试这个:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=myKey&sensor=true"> 
</script> 
<script> 
    // make this global: 
    var map; 

    function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(56.33481154165235, 11.107177734375), 
     zoom: 7, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 
    addMarker(); 
    } 

    // Function for adding a marker to the page. 
function addMarker() { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(55.671389288295465, 12.5601196289062), 
     map: map 
    }); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
+0

谢谢你这段代码,我会尝试一下,看看它是否工作。 – ACetin 2013-03-19 12:58:08

+0

为什么downvote,无论它是谁? – duncan 2013-04-24 12:27:11

1

尝试以下

<script type="text/javascript"> 
var marker, 
    CentralPark = new google.maps.LatLng(55.671389288295465, 12.5601196289062); 

function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(56.33481154165235, 11.107177734375), 
     zoom: 7, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

    marker = new google.maps.Marker({ 
     position: CentralPark, 
     map: map, 
     animation: google.maps.Animation.DROP 
    }); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 
</script>