我想在谷歌地图中同时使用多个标记(位置)和地理位置。
一切都会好起来的,如果我可以在这一行使用resultx变量
中心:新谷歌地图LatLng('42','26',13),
而不是'42','26'
我试过resultx,'resultx','+resultx+'。。例如,但它不起作用。
那么你的建议是什么呢?
-----HTML----
<div id="map-canvas"></div>
<button onclick="getLocation()">Get your location</button>
-----JAVASCRIPT----
<script>
var x = document.getElementById("map-canvas");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var latx=''+position.coords.latitude+'';
var lonx=''+position.coords.longitude+'';
var resultx=latx+','+lonx;
var locations = [
['Helooo',40, 30 ,0] , ['Helooo',41.04564,28.97862 ,1] , ];
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 5,
scrollwheel: false,
center: new google.maps.LatLng('42','26',13),
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]),
disableAutoPan: true,
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
</script>
要使用地理定位函数的结果,请从所需的纬度和经度创建一个google.maps.LatLng(或google.maps.RatLngLiteral),然后使用它来居中地图。
function showPosition(position) {
var latx=position.coords.latitude;
var lonx=position.coords.longitude;
var resultx=new google.maps.LatLng(latx,lonx);
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 5,
scrollwheel: false,
center: resultx,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
概念验证小提琴
代码片段:
var x = document.getElementById("map-canvas");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var latx = position.coords.latitude;
var lonx = position.coords.longitude;
var resultx = new google.maps.LatLng(latx, lonx);
var locations = [
['Helooo', 40, 30, 0],
['Helooo', 41.04564, 28.97862, 1],
];
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 5,
scrollwheel: false,
center: resultx,
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]),
disableAutoPan: true,
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
html,
body,
#map-canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<button onclick="getLocation()">Get your location</button>
<div id="map-canvas"></div>
google.maps.LatLng
仅使用两个参数(lat,lng)
在您的情况下,您在传递用逗号('42','26',13)分隔的值时出错,
例如
center: new google.maps.LatLng(42.26010101, 26.1801010101)
使用句点作为小数分隔符,不要传递第三个参数。