2016-03-21 58 views
1

我實際上使用的是geocode如何在頁面加載時在div中心設置我的地圖標記

<?php 
if($_REQUEST){ 

$data_arr = geocode($_REQUEST['search_city']); 

if($data_arr){ 

$latitude = $data_arr[0]; 
$longitude = $data_arr[1]; 
$formatted_address = $data_arr[2]; 

?> 

<div id="map_canvas" style="/*width:100%;*/ height:300px;"> 
    Loading map... 
</div> 

<script type="text/javascript" src="http://maps.google.com/maps/api/js"></script> 
<script type="text/javascript"> 
function init_map() { 
    var myOptions = { 
    zoom: 20, 
    center: new google.maps.LatLng(<?php echo $latitude; ?>,<?php echo $longitude; ?>), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    marker = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(<?php echo $latitude; ?>,<?php echo $longitude; ?> 
     ), 
     title: '<?php echo $formatted_address; ?> 
     }); 
     var bounds = new google.maps.LatLngBounds(); 
     bounds.extend(myLatLng); 
     map.fitBounds(bounds); 

     infowindow = new google.maps.InfoWindow({ 
     content: " 
    <?php echo $formatted_address; ?> 
     " 
     }); 
     google.maps.event.addListener(marker, "click", function() { 
     map.panTo(marker.getPosition()); 
     infowindow.open(map, marker); 

     }); 
     infowindow.open(map, marker); 
} 

    google.maps.event.addDomListener(window, 'load', init_map); 
</script> 

<?php 

}else{ 
echo "No map found."; 
} 
} 

function geocode($address) { 

    $address = urlencode($address); 

    $url = "http://maps.google.com/maps/api/geocode/json?address={$address}"; 
    $resp_json = file_get_contents($url); 
    $resp = json_decode($resp_json, true); 
    if ($resp['status'] == 'OK') { 

     $lati = $resp['results'][0]['geometry']['location']['lat']; 
     $longi = $resp['results'][0]['geometry']['location']['lng']; 
     $formatted_address = $resp['results'][0]['formatted_address']; 

     if ($lati && $longi && $formatted_address) { 

      $data_arr = array(); 

      array_push($data_arr, $lati, $longi, $formatted_address); 
      return $data_arr; 

     } else { 
      return false; 
     } 

    } else { 
     return false; 
    } 
} 
?> 

這裏,地圖標記被視爲在地圖上像這樣的左上角,

enter image description here

我寫map.panTo(marker.getPosition());一個google.maps.event.addListener(marker, "click", function() {});函數內。

所以,如果標記點擊,我回到地圖的中心。

但我需要在頁面加載後在中心顯示標記。

,只要你想在的mapTypeControlOptions代替TOP_CENTER的謝謝,

回答

1

通過myoptions增加了兩個額外的參數變量,改變位置。

var myOptions = { 
    zoom: 20, 
    center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>), 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    mapTypeControl: true, 
    mapTypeControlOptions: { 
     style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, 
     position: google.maps.ControlPosition.TOP_CENTER 
    } 
}; 

https://developers.google.com/maps/documentation/javascript/examples/control-positioning

+0

真的很好.. :)它爲我偉大的..謝謝你這麼多.. :) –

相關問題