【发布时间】:2018-09-26 14:02:33
【问题描述】:
我想打开一个新标签页,显示带有特定标记样式和功能的谷歌地图。我正在使用反向地理编码,因为我有经度和纬度数据。我可以在同一页面中打开地图,但无法在新窗口中打开它。
提前致谢
这是我当前的代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Reverse Geocoding</title>
<style>
#map {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<input id="latlng" type="text" value="40.714224,-73.961452" >
<button id="submit" onclick="geocodeLatLng()">knvhcmc</button>
<div id="map"> </div>
<script>
function geocodeLatLng() {
debugger;
var input = document.getElementById('latlng').value;
var latlngStr = input.split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng:
parseFloat(latlngStr[1])};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: latlng
});
var geocoder = new google.maps.Geocoder;
var infowindow = new google.maps.InfoWindow;
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === 'OK') {
if (results[0]) {
map.setZoom(11);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
var divText = document.getElementById("map").outerHTML;
var myWindow = window.open('', '', 'width=1000,height=800');
var doc = myWindow.document;
doc.open();
doc.write(divText);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?
key=AIzaSyCcyyWSd6ETju45EKjArNtJXAJt5w1xecQ&callback=initMap">
</script>
</body>
</html>
【问题讨论】:
-
这是项目要求的一部分,使用经度和纬度值在新选项卡中显示地图。我可以通过传递经度和纬度/位置 ID 使用谷歌地图 URL 在新选项卡中打开它,但样式/标记样式将不是必需的。所以我必须使用谷歌地图API,但找不到上面的解决方案(即在新标签中打开地图)。
-
谢谢....... @tomjosef 这正是我的问题所需要的。
标签: javascript google-maps reverse-geocoding new-window