我正在使用谷歌地图作为我的房地产脚本。谷歌地图的脚本如下。
<script type='text/javascript'>
var map;
var marker;
var coordinates = '';
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(41.070778,29.057808),
zoom: 14,
mapTypeId: 'roadmap'
};
map = new google.maps.Map(document.getElementById('map-canvas-ajax'), mapOptions);
google.maps.event.addListener(map, 'click', function(event) {
var lat = event.latLng.lat().toFixed(6);
var lng = event.latLng.lng().toFixed(6);
createMarker(lat, lng);
getCoords(lat, lng);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
创建地图没有问题。当用户选择城市、州和社区时,我使用地理编码api从ajax页面上的地址获取纬度和经度。这里也没有问题。但当我尝试为地图设置新的中心时,尽管我有正确的lat和lang,但没有响应。它仍然显示中心的默认lang和lat。
$('select[name="ads_neighborhoods"]').change(function() {
var city = $("select[name='ads_city'] option:selected").html();
var county = $("select[name='ads_county'] option:selected").html();
var area = $("select[name='ads_area'] option:selected").html();
var neighborhoods = $("select[name='ads_neighborhoods'] option:selected").html();
$.ajax({
type:'POST',
url:'ajax/map.php',
data:{'city':city, 'county':county, 'area':area, 'neighborhoods': neighborhoods},
success:function(result){
var data = result;
var coordinates = new Array();
var coordinates = data.split(",");
map.setCenter({
lat : coordinates[0],
lng : coordinates[1]
});
}
});
});
当我尝试使用默认代码时,控制台上没有错误。但当我尝试WebCode.ie的代码时,出现了一个错误"不是LatLng或LatLngLiteral:在属性lat:不是数字"。
我对来自ajax调用的lat/lang使用了parseFloat((函数。然后我结合了map.panTo((函数。它奏效了。
<script>
$('select[name="ads_neighborhoods"]').change(function() {
var city = $("select[name='ads_city'] option:selected").html();
var county = $("select[name='ads_county'] option:selected").html();
var area = $("select[name='ads_area'] option:selected").html();
var neighborhoods = $("select[name='ads_neighborhoods'] option:selected").html();
$.ajax({
type:'POST',
url:'ajax/map.php',
data:{'city':city, 'county':county, 'area':area, 'neighborhoods': neighborhoods},
success:function(result){
var data = result;
var coordinates = new Array();
var coordinates = data.split(",");
var lat = parseFloat(coordinates[0]);
var lng = parseFloat(coordinates[1]);
map.panTo({lat : lat, lng : lng});
map.setZoom(14);
}
});
});
</script>