我有以下代码根据给定的latLang生成Google Map,但它没有显示任何地图。
我从DB获取latLang并将其存储在隐藏输入中,使用document.getElementById()
我获取值并将其分配给地图。但它失败了吗?为什么呢?
(34.686298727073016, 50.92648297548294)
以下是生成地图的Javascript代码:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&language=fa"></script>
<div id='map-canvas' style="width: 500px; height: 500px; border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;">
</div>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(document.getElementById('mapPosition').value);
var mapOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'منطقه مورد نظر در نقشه'
});
var infowindow = new google.maps.InfoWindow({
content: "<B>نقطه مورد نظر خود را در نقشه کلیک کنید</B>"
});
/*
google.maps.event.addListener(map, 'click', function(event) {
console.log(event);
marker.setPosition(event.latLng);
document.getElementById('mapPosition').value = event.latLng;
map.setCenter(event.latLng);
});*/
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<input type="hidden" value="<?php echo $item[0]['latLang']; ?>" name="mapPosition" id="mapPosition" />
答案 0 :(得分:2)
The api有两个参数,例如
new google.maps.LatLng(-34.397, 150.644)
看起来你正在传递一个
new google.maps.LatLng(document.getElementById('mapPosition').value);
我建议你在这里寻找你的问题。 要么解析值
(34.686298727073016,50.92648297548294)
分为两个参数,或者有两个输入 - 一个用于长,另一个用于lat。
答案 1 :(得分:0)
尝试给出单个lat long值:
myLatLong = new google.maps.LatLng(lat, long)