Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在页面加载时将地图标记设置在div的中心_Javascript_Php_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何在页面加载时将地图标记设置在div的中心

Javascript 如何在页面加载时将地图标记设置在div的中心,javascript,php,jquery,google-maps,google-maps-api-3,Javascript,Php,Jquery,Google Maps,Google Maps Api 3,我实际上使用的是geocode <?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%;*/ he

我实际上使用的是
geocode

<?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;
    }
}
?>

正在加载地图。。。
函数init_map(){
变量myOptions={
缩放:20,
中心:新google.maps.LatLng(,),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
marker=新的google.maps.marker({
地图:地图,
位置:新的google.maps.LatLng(,
),
标题:'
});
var bounds=new google.maps.LatLngBounds();
扩展(myLatLng);
映射边界(bounds);
infowindow=新建google.maps.infowindow({
内容:“
"
});
google.maps.event.addListener(标记“单击”,函数(){
map.panTo(marker.getPosition());
信息窗口。打开(地图、标记);
});
信息窗口。打开(地图、标记);
}
google.maps.event.addDomListener(窗口'load',初始化映射);
在这里,地图标记在地图的左上角查看,如下所示

我写了
map.panTo(marker.getPosition())
google.maps.event.addListener(标记,“单击”,函数(){})中函数

因此,如果点击标记,我会回到地图的中心

但我需要在页面加载后在中间显示标记


谢谢,

myoptions变量中添加两个额外参数,并根据需要更改位置,而不是在mapTypeControlOptions中更改位置

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
    }
};
var myOptions={
缩放:20,
中心:新google.maps.LatLng(,),
mapTypeId:google.maps.mapTypeId.ROADMAP,
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
位置:google.maps.ControlPosition.TOP\u中心
}
};

真不错……)这对我很有用。。非常感谢……)