默认为地理位置地图
Geolocation map by default
我有一个页面显示客户在地图上的位置,他可以拖动标记更准确,GPS坐标也显示在页面顶部。
问题是,有时由于某些原因无法检测到位置,我如何设置默认位置以防实际位置没有出现。
假设我们想让默认位置为:25.074217,55.510044仅在当前位置未成功加载的情况下
这是代码
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<br />
Copy this number and past it in GPS field
<br />
<br />
<input id="divLat" type="text" />
<br />
<br />
<div id="map_canvas" style="width: 600px; height: 600px;"></div>
<script type="text/javascript">
var marker;
function initialize() {
var lat;
var lon;
navigator.geolocation.getCurrentPosition(function (location) {
lat = location.coords.latitude;
lon = location.coords.longitude;
var city = new google.maps.LatLng(lat, lon);
var mapOptions = {
zoom: 15,
center: city,
mapTypeId:google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var image = "icon.png";
marker = new google.maps.Marker({
position: city,
map: map,
draggable: true,
icon: image
});
google.maps.event.addListener(marker, 'position_changed', function (event) {
update();
});
update();
}, function (positionError) {
alert("getCurrentPosition failed: " + positionError.message);
}, { enableHighAccuracy: true });
};
google.maps.event.addDomListener(window, "load", initialize);
function update() {
var lonlan = marker.getPosition();
var divLat = document.getElementById ("divLat");
divLat.value = lonlan.lat ()+","+lonlan.lng ();
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDfpx62iYkjhpz0J-vu4Zz96vtWE2TFzQs&signed_in=true&callback=initMap"></script>
</body>
</html>
最简单的方法:将地图初始化为默认位置,然后让地理定位功能在启用时重置位置。
代码片段:
var marker;
var map;
var image = "http://maps.google.com/mapfiles/ms/micons/blue.png";
function initialize() {
var defaultLocation = new google.maps.LatLng(25.074217, 55.510044);
var lat;
var mapOptions = {
zoom: 15,
center: defaultLocation,
mapTypeId: google.maps.MapTypeId.HYBRID
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
marker = new google.maps.Marker({
position: defaultLocation,
map: map,
draggable: true,
icon: image
});
google.maps.event.addListener(marker, 'position_changed',
function(event) {
update();
});
navigator.geolocation.getCurrentPosition(function(location) {
lat = location.coords.latitude;
lon = location.coords.longitude;
var city = new google.maps.LatLng(lat, lon);
var mapOptions = {
zoom: 15,
center: city,
mapTypeId: google.maps.MapTypeId.HYBRID
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
marker = new google.maps.Marker({
position: city,
map: map,
draggable: true,
icon: image
});
google.maps.event.addListener(marker, 'position_changed',
function(event) {
update();
});
update();
}, function(positionError) {
alert("getCurrentPosition failed: " + positionError.message);
}, {
enableHighAccuracy: true
});
}
google.maps.event.addDomListener(window, "load", initialize);
function update() {
var lonlan = marker.getPosition();
var divLat = document.getElementById("divLat");
divLat.value = lonlan.lat() + "," + lonlan.lng();
}
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<br />Copy this number and past it in GPS field
<br />
<br />
<input id="divLat" type="text" />
<br />
<br />
<div id="map_canvas"></div>
相关文章:
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 为什么无法根据谷歌地图地理编码geometry.bounds找到位置,但可以通过MongoDB中的geometry.vi
- 谷歌地图/GMAP3 - 绘制从用户地理位置到已知目的地的路线 - 需要帮助
- j查询地理位置和地图突出显示
- 谷歌地图API地理位置文本搜索地点详细信息
- 使用下拉框中的选择更改HTML5中的地理位置地图
- 如何在地图上显示地理位置的推文
- 地理位置谷歌地图jquery
- 地理位置雅虎地图API
- 在带有地理位置的jquery移动网站中添加谷歌地图
- 地理位置地图 JS.
- 你如何在谷歌地图上获得一个点的地理位置
- 使用html5中的地理位置在谷歌地图中显示坐标列表
- HTML5地理位置监视位置正在重新加载完整的地图,而不仅仅是位置
- 谷歌地图API显示空白地图时,从HTML5地理位置提供LatLng线
- 谷歌地图API:希望地理位置自动点击下面的数据层
- 实时地图地理位置
- 如何在谷歌地图地理位置API中获取笔记本电脑(wifi)的纬度和经度
- 谷歌地图地理位置刷新页面
- 谷歌地图地理位置getcurrentposition()