结合地理位置和标记使用谷歌地图Javascript
Combine Geolocation and markers using Google Maps Javascript
我正在尝试创建一个地图,显示您当前的位置,并显示在城市中的标记。这样你就可以看到你是否在一个标记附近。
我必须在这个时候编码,我需要把它们组合起来。但当我这么做的时候,密码就失效了。有人知道怎么把这两个JS结合起来吗?如果没有,还有其他方法吗?
这是用于地理定位的JS:
function initMap()
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 14,
});
var infoWindow = new google.maps.InfoWindow({map: map});
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
infoWindow.setPosition(pos);
infoWindow.setContent('Location found.');
map.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn''t support geolocation.');
}
这是我为标记做的JS代码:
google.maps.event.addDomListener(window, 'load', initialize);
var map;
var currentPage = 'mapA';
var markers = [
['Thuis',52.2203713,6.90032999999994],
['Bommelstein',52.22254299999999,6.911623800000029],
['Saxion', 52.21976009999999,6.889364500000056],
['Kroeg', 52.2206085,6.896547300000066],
['t Gat', 52.2211657,6.895848999999998],
['studieruimte de Bul', 52.22101940903001,6.8924690438436755]
];
function initialize() {
var mapOptions = {
zoom: 14,
disableDoubleClickZoom: true,
draggable: true,
panControl: false,
scrollwheel: true,
zoomControl: true,
streetViewControl: false,
overviewMapControl: false,
mapTypeControl: false,
center: new google.maps.LatLng(51.489031, 7.039671)
};
map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
setMarkers();}function setMarkers(){
for (i = 0; i < markers.length; i++) {
var post = new google.maps.LatLng(markers[i][1], markers[i][2]);
var marker = new google.maps.Marker({
position: post,
map: map
});
var infowindow = new google.maps.InfoWindow({
content: markers[i][0]
});
infowindow.open(map,marker);
}
}
我实际上正在做同样的事情,直到几分钟前才遇到同样的问题。我只是在声明地图对象之前启动地理位置条件来查找位置,它为我工作了。下面是我的简单代码,类似于你的:
function initMap() {
// Try HTML5 geolocation.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var currentpos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
var map = new google.maps.Map(document.getElementById('map'), {
center: currentpos,
zoom: 14,
});
var contentString = 'I found you';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: pos,
map: map,
title: 'marker with infoWindow'
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn''t support geolocation.');
}
祝你好运
相关文章:
- 当我使用高度百分比时,谷歌地图javascript api不会显示
- 谷歌地图Javascript API与网络服务API
- 用两个手指旋转谷歌地图javascript中的地图
- 谷歌地图Javascript API位置库
- 谷歌应用程序脚本html服务和加载谷歌地图javascript api V3
- 谷歌地图Javascript v3多段线点击事件
- 将dropdownlist值传递给谷歌地图javascript
- 谷歌地图javascript多个方法错误
- 谷歌地图Javascript API在部署到设备时不起作用
- 如何在谷歌地图javascript中在地图上拖动标记(可拖动方向)时显示更新的坐标
- 如何使用谷歌地图javascript
- Redraw自定义谷歌地图javascript地图
- 谷歌地图Javascript V3未捕获类型错误:无法读取属性'offsetWidth'为null
- 谷歌地图JavaScript API-与setCenter配合使用
- 多边形中心谷歌地图JavaScript API v3
- 谷歌地图Javascript API“;未捕获类型异常-未定义不是函数“;
- 有没有办法使用谷歌地图javascript api突出显示一个国家,类似于嵌入api
- 谷歌地图Javascript API V3:标记具有相同的标题
- 将声音添加到标记数组 - 谷歌地图JavaScript
- 谷歌地图JavaScript标记问题