2013-02-27 3 views
0

Я инициализация карты Google, используя следующий код:На неудавшейся карте Geocoding не устанавливая поставленные координаты

function googleMapinitialize(fenceAddIn){ 
var fenceAdd=new google.maps.LatLng(37.2146,121.5545); 
var mapProp = { 
     center:fenceAdd, 
     zoom:30, 
     mapTypeId:google.maps.MapTypeId.TERRAIN 
}; 

var map = new google.maps.Map(document.getElementById("fenceMap"),mapProp); 

var geocoder = new google.maps.Geocoder(); 
var location = fenceAddIn; //"2001 Gateway PI, San Jose, CA"; 

if(!geocoder) { 
    geocoder = new google.maps.Geocoder(); 
} 

var geocoderRequest = { 
    address: location 
} 

var myCity = null; 
var marker = null; 
var infowindow = null; 
geocoder.geocode(geocoderRequest, function(results, status) { 
    if (status =="" || status == google.maps.GeocoderStatus.ZERO_RESULTS){ 
     alert("'" + location + "' not found!!!"); 
     map.setCenter(fenceAdd); 
    } else if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     fenceAdd = new google.maps.LatLng(results[0].geometry.location.hb,results[0].geometry.location.ib); 
     if (!marker) { 
      marker = new google.maps.Marker({ 
       map: map, 
       raiseOnDrag:false, 
       draggable:true 
      }); 
      marker.setPosition(results[0].geometry.location); 
      google.maps.event.addListener(marker,'click',function(){ 
       if (!infowindow) { 
        infowindow = new google.maps.InfoWindow({ 
         disableAutoPan:true, 
         maxWidth:100 
        }); 
       } 
       var content = '<strong>' + results[0].formatted_address + '</strong>'; 
       infowindow.setContent(content); 
       infowindow.setPosition(results[0].geometry.location); 
       infowindow.open(map, marker);     
      }); 

     } 
    } 
    myCity = new google.maps.Circle({ 
     center:fenceAdd, 
     radius:125, 
     strokeColor:"#0000ff", 
     strokeOpacity:0.1, 
     strokeWeight:0.1, 
     fillColor:"#0000ff", 
     fillOpacity:0.20, 
     map:map 
    }); 

    google.maps.event.addListener(map, 'click', function(){ 
     infowindow.close(); 
    }); 
    google.maps.event.addListener(map, 'dblclick', function(){ 
     window.open("<%=request.getContextPath() %>/jsp/googleMapPopup.jsp?fenceAddress="+$('#haddr').val(),'ADDRESSMAP','height=400,width=600'); 
    }); 
}); 
} 

Я посылаю адрес, который геокодированный и позицию, отмеченную булавкой на карте. Но в случае неудачи геокодирования карта сосредоточена вокруг фарфора. Поэтому, чтобы преодолеть это, я возвращаю центр карты к оригинальной длине и рисую на ней круг. Когда я отлаживал код, я видел, что координаты устанавливаются правильно, но на карте все еще отображается карта фарфора.

Может ли кто-нибудь сказать мне, как сбросить местоположение карты в этом случае?

ответ

1

Ваш fenceAdd координаты по умолчанию в Китай:

206 Provincial Road, Muping, Яньтай, Шаньдун, Китай (37,21401, 121,5955285)

Если вы не хотите, чтобы карта центра есть , измените эти координаты.

Смежные вопросы