Google maps 以用户为中心的谷歌地图';地球定位
我有一个谷歌地图(v2)在我的网站上,我用它来获取用户的纬度和经度,以表格的形式发送它们。我需要的是使这张地图最初以用户的地理位置为中心。我知道这不是一个实际的问题,但我对谷歌地图api不是很熟悉,网上的所有教程都基于谷歌地图v3,我不想麻烦地迁移到v3并重新编写所有内容。因此,如果有人引导我朝着正确的方向,让这个功能在gmap(v2)上运行,我将不胜感激。下面是我的代码的样子:Google maps 以用户为中心的谷歌地图';地球定位,google-maps,geolocation,Google Maps,Geolocation,我有一个谷歌地图(v2)在我的网站上,我用它来获取用户的纬度和经度,以表格的形式发送它们。我需要的是使这张地图最初以用户的地理位置为中心。我知道这不是一个实际的问题,但我对谷歌地图api不是很熟悉,网上的所有教程都基于谷歌地图v3,我不想麻烦地迁移到v3并重新编写所有内容。因此,如果有人引导我朝着正确的方向,让这个功能在gmap(v2)上运行,我将不胜感激。下面是我的代码的样子: if (GBrowserIsCompatible()) { var map = new GMap2(docu
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
var center = new GLatLng(43.65323, -79.38318);
map.setCenter(center, 15);
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(initialLocation);
});
}
geocoder = new GClientGeocoder();
var marker = new GMarker(center, {
draggable: true
});
map.addOverlay(marker);
document.getElementById("b-lat").value = center.lat().toFixed(5);
document.getElementById("b-longt").value = center.lng().toFixed(5);
GEvent.addListener(marker, "dragend", function () {
var point = marker.getPoint();
map.panTo(point);
document.getElementById("b-lat").value = point.lat().toFixed(5);
document.getElementById("b-longt").value = point.lng().toFixed(5);
});
GEvent.addListener(map, "moveend", function () {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {
draggable: true
});
map.addOverlay(marker);
document.getElementById("b-lat").value = center.lat().toFixed(5);
document.getElementById("b-longt").value = center.lng().toFixed(5);
GEvent.addListener(marker, "dragend", function () {
var point = marker.getPoint();
map.panTo(point);
document.getElementById("b-lat").value = point.lat().toFixed(5);
document.getElementById("b-longt").value = point.lng().toFixed(5);
});
});
}
请参阅我的其他帖子:
要简单地放大,请使用:
float zoomLevel = 20.0f;
map.animateCamera(CameraUpdateFactory.zoomTo(zoomLevel);
要缩放到标记,请使用:
LatLng l = new LatLng(LATPOSITION, LONGPOSITION); float zoomLevel =
20.0f; map.animateCamera(CameraUpdateFactory.newLatLngZoom(l, zoomLevel));
在希望进行缩放的位置添加这些
注意:这是针对Java android的,您可能需要在web上编辑它。我通过
navigator
对象找到了解决方案。初始化地图后,我发现用户的lat和LONG带有以下代码块:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
userLatitude = position.coords.latitude;
userLongitude = position.coords.longitude;
center = new GLatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(center, 15);
addMapMarker();
});
if(typeof userLatitude == 'undefined' && typeof userLongitude == 'undefined') {
center = new GLatLng(43.65323, -79.38318);
map.setCenter(center, 15);
addMapMarker();
}
} else {
center = new GLatLng(43.65323, -79.38318);
map.setCenter(center, 15);
addMapMarker();
}