我一直在尝试将此代码从 APIv2 转换为 v3,但我无法让它工作。有人会帮我找出错误吗?
地图没有启动,我不明白为什么。我一直在使用相同的代码,但过去使用 v2 API 的代码没有问题,但现在我看不出问题出在哪里。
我的代码是:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?
v=3.exp&sensor=false"></script>
<script type="text/javascript">
var map;
{if $listing.location_is_set}
var zoom = 15;
{else}
var zoom = 7;
{/if}
{literal}
var latitude = {/literal}{$geoData.latitude}{literal};
var longitude = {/literal}{$geoData.longitude}{literal};
$(document).ready(function(){
map = new google.maps.Map(document.getElementById("map-canvas"));
map.setCenter(new google.maps.LatLng(latitude, longitude), zoom);
map.addControl(new google.maps.SmallMapControl());
map.addControl(new google.maps.MapTypeControl());
map.addControl(new google.maps.ScaleControl());
map.addControl(new google.maps.OverviewMapControl());
var point = new google.maps.LatLng(latitude, longitude);
var marker = new google.maps.Marker(point, {draggable: true});
google.maps.event.addListener(marker, "dragstart", function() {
map.closeInfoWindow();
});
google.maps.event.addListener(marker, "dragend", function() {
$("#m_lat").val(marker.getLatLng().lat());
$("#m_lon").val(marker.getLatLng().lng());
});
google.maps.event.addListener(map, 'click', function(overlay,
latlng) {
marker.setLatLng(latlng);
$("#m_lat").val(marker.getLatLng().lat());
$("#m_lon").val(marker.getLatLng().lng());
});
map.addOverlay(marker);
}
);
</script>
{/literal}