我正在尝试创建一个能够跟踪我的位置并同时能够显示多个标记的 map 。我可以结合下面的 2 个 JavaScript 吗?如果不知道我应该怎么做?
用于多个标记的 JavaScript
<script type="text/javascript">
var locations = [
['Hougang', 1.37265, 103.893658],
['Punggol', 1.400617, 103.907833],
['MacRitchie Reservoir', 1.346002, 103.825436],
['Bishan', 1.352051, 103.849125],
['Sentosa', 1.251226, 103.830757]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: new google.maps.LatLng(1.37265, 103.893658),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
当前位置的 JavaScript
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
}
最佳答案
是的,可以将两者结合起来。当您初始化 map 并绘制后港...位置后,您可以添加地理定位代码。我写了一个演示,它会为地理定位显示一个较小的绿色图标。如果浏览器不支持地理编码,则不会显示任何内容,也不会显示任何错误。
演示 http://jsfiddle.net/yV6xv/7/
请记住,如果代码是从硬盘驱动器本地加载的,则地理定位不起作用(至少对我而言)。它必须公开提供。
// Check if user support geo-location
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var geolocpoint = new google.maps.LatLng(latitude, longitude);
var mapOptions = {
zoom: 8,
center: geolocpoint,
mapTypeId: google.maps.MapTypeId.HYBRID
}
// Place a marker
var geolocation = new google.maps.Marker({
position: geolocpoint,
map: map,
title: 'Your geolocation',
icon: 'http://labs.google.com/ridefinder/images/mm_20_green.png'
});
});
}
关于javascript - 如何使用 javascript 结合地理定位和多个标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10932496/