1

私は自分の経度と緯度を取得して変数に保存することができます:

var myLat = position.coords.latitude;
var myLong = position.coords.longitude;

画面上のマップの初期位置を表示するコードにそれらを渡す方法がわかりません。

 function initialize() {
                    var mapOptions = {
                        center: new google.maps.LatLng(-34.397, 150.644),
                        zoom: 4,
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    };
                    var map = new google.maps.Map(document.getElementById("map_canvas"),
                                                  mapOptions);
                }

myLat と myLong を次の行に入力する必要があります。

center: new google.maps.LatLng(-34.397, 150.644)

どうすればいいのかわかりません。誰かが私を正しい方向に向けることができますか?

編集:以下のリクエストに従って完全なコードを追加しました

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=YOUR KEY HERE&sensor=true"></script>

    <script type="text/javascript">

        //MAP
        function initialize() {
            var mapOptions = {
                center: new google.maps.LatLng(-34.397, 150.644),
                zoom: 9,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            map = new google.maps.Map(document.getElementById("map_canvas"),
                                  mapOptions);
        }

        //GEOLOCATION
    var onSuccess = function(position) {
        alert('Latitude: '  + position.coords.latitude   + '\n' +
              'Longitude: ' + position.coords.longitude  + '\n');

        var myLat = position.coords.latitude;
        var myLong = position.coords.longitude;

       map.setCenter(new google.maps.LatLng(myLat, myLong)) 


    };

    // onError Callback receives a PositionError object
    //
    function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }

    navigator.geolocation.getCurrentPosition(onSuccess, onError);

</script>

そしてHTML:

<body onload="initialize()">

 <div id="map_canvas" style="width:300px; height:400px;"></div>

</body

>

4

3 に答える 3

3

これが機能しない理由は、次の機能のためです

var onSuccess = function(position) {

    alert('Latitude: '  + position.coords.latitude   + '\n' +
          'Longitude: ' + position.coords.longitude  + '\n');

    var myLat = position.coords.latitude;
    var myLong = position.coords.longitude;

    map.setCenter(new LatLng(myLat, myLong));
};

使用するとき

map.setCenter(new LatLng(myLat, myLong)) 

使用する必要があります

map.setCenter(new google.maps.LatLng(myLat, myLong)) 

LatLng オブジェクトは未定義になります。使用する必要があるオブジェクトは google.maps.LatLng です。

于 2012-08-01T05:39:56.100 に答える
3

それはただ

var map;
function initialize() {
    //...
}

initialize();

function initiate_geolocation() {  
    navigator.geolocation.getCurrentPosition(onSuccess);
}  

function onSuccess(position){  
    var myLat = position.coords.latitude;
    var myLong = position.coords.longitude;
    map.setCenter(new google.maps.LatLng(myLat, myLong)); // edit this line
}
initiate_geolocation();

そうではmap.setCenter(new LatLng(myLat, myLong));なく、そうあるべきですmap.setCenter(new google.maps.LatLng(myLat, myLong));

デモ。

于 2012-08-01T05:11:16.997 に答える
0

google.maps.LatLng のコンストラクター引数として myLat と myLong を渡すだけです。したがって、コードは次のようになります。

function initialize() {
var mapOptions = {
center: new google.maps.LatLng(myLat,myLong),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
}
于 2012-08-01T05:18:59.803 に答える