使用 GPS 坐标修改地图的中心
Using GPS coordinates to modify the center of a map
我想使用一个函数来使用GPS获取位置,然后使用坐标(经度和纬度)来修改地图的中心。
这是我代码的一部分:
var lat;
var longi;
function initialize() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(onGeoSuccess, onGeoError, {
maximumAge: 3000,
enableHighAccuracy: true
});
function onGeoSuccess(event) {
lat = event.coords.latitude;
longi = event.coords.longitude;
alert(lat + ', ' + longi);
}
function onGeoError(event) {
lat = 50;
longi = 150;
}
} else {
lat = 50;
longi = 150;
};
var array;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(lat, longi),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
zoomControl: true
});
}
问题是:警报很好,它显示实际的经度和纬度,但地图没有出现,它只给出了一个小问号。
任何帮助都是有益的。
而不是使用map.setCenter(lat,longi);
尝试:
map.set('center', new google.maps.LatLng(lat, longi));
您需要
在onGeoSuccess
方法中居中地图:
所有冷杉map
变量更高:
var lat, longi, map;
然后在onGeoSuccess
方法上添加setCenter
方法调用:
function onGeoSuccess(event){
lat=event.coords.latitude;
longi=event.coords.longitude;
map.setCenter( new google.maps.LatLng(lat, longi) );
}
无论您在哪里更改lat, longi
值,也可以onGeoError
方法中执行此操作。
另外,最好对lat, longi
使用一些默认值:
var lat = 50,
longi = 150,
map;
并将地图初始化向上移动(不要忘记删除var
行之前的语句map = new google.maps.Map
):
function initialize() {
var array;
map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(lat, longi),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
zoomControl: true
});
// rest of your code
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 在Safari执行javascript之前对其进行修改
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 如何通过使用谷歌地图从文本字段提交来修改javascript对象中的数据
- 修改嵌入式谷歌地图的缩放级别
- 在按钮左键单击时在谷歌地图上添加标记.尝试修改一个示例
- 使用 GPS 坐标修改地图的中心
- 谷歌地图商店定位器将硬编码初始化修改为动态
- 修改谷歌地图类型的最大缩放级别
- 修改谷歌地图 API 代码
- 使用SVG文件动态修改谷歌地图图标
- 拦截和修改请求谷歌地图自动完成API
- 修改地图的javascript自动输入
- 修改我的自定义标记图像大小为我的谷歌地图
- 向谷歌地图传递纬度和经度.需要有人帮我修改代码
- 相同的谷歌地图也在地图中修改后显示在两个选项卡中
- 谷歌地图赢得't加载-教程中的空白屏幕修改