2016-09-15 2 views
-1

を与えます)。関連するコードは2つの異なるGoogle開発サイトからです。完全なコードはhttps://aslett.net/gmapsにあります。GoogleマップAPI&HTML5ジオロケーション、map.getCenter()私は、データベースへのユーザーの現在位置を書き込むしようとしているが、HTML 5のジオロケーションの後、私は(map.getCenterために間違った値を取得し、間違った値

function load() { 
    var map = new google.maps.Map(document.getElementById("map"), { 
    center: new google.maps.LatLng(47.6145, -122.3418), 
    zoom: 17, 
    mapTypeId: 'roadmap' 
    }); 
    var infoWindow = new google.maps.InfoWindow({map: map}); 

// Try HTML5 geolocation. 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = { 
     lat: position.coords.latitude, 
     lng: position.coords.longitude 
    }; 

    infoWindow.setPosition(pos); 
    infoWindow.setContent('Location found.'); 
    map.setCenter(pos); 
    }, function() { 
    handleLocationError(true, infoWindow, map.getCenter()); 
    }); 
    var latlng = map.getCenter(); 
    var url = "add_marker.php?lat=" + latlng.lat() + "&lng=" + latlng.lng() + "&type=red"; 
    downloadUrl(url, function(data, responseCode) { 
    }); 
} else { 
    // Browser doesn't support Geolocation 
    handleLocationError(false, infoWindow, map.getCenter()); 
} 

問題は、(底部近く)ラインです...

var latlng = map.getCenter(); 

...私は(それは私にHTML5ジオロケーションラインに設定された座標を与えることを期待していました4行まで)...

map.setCenter(pos); 

...しかし、それは私に()最上部付近で設定された値を与える...

center: new google.maps.LatLng(47.6145, -122.3418), 

私も...

var latlng = infoWindow.getPosition(); 

を使用して位置を取得しようとしました...それは(このマップのものに新しいですし、ストローでつかんでいます)動作しませんでした。

+0

ユーザーがブラウザで自分の位置を取得することができます仮定を作っていますか? – Takarii

+0

これはちょうどその時点での概念実証なのです。そうです、それは今私が(それを使用する唯一の人であるように)前提です。 – mxlothar

答えて

2

あなたはに、Googleのコード例に追加した行var latlng = map.getCenter();は、getCurrentPosition()関数の前に実行されます。あなたがトップでそれを定義したところだから、この変数が設定されているその時に、マップの中心部はまだあります。その後、getCurrentPosition()方法が発射されます。 あなたはgetCurrentPosition()関数にコードのあなたの余分な行を追加する必要があります。

+0

あなたがスター!それは治療を働かせた。 'VAR緯度経度= map.getCenterは();'; 'ものがストレート' map.setCenter(POS)の後になりました。ありがとう:) – mxlothar

+0

ようこそ。私の返信を正しい答えとして記入してください。 ;) – Jan

関連する問題