0

yahooマップで使用するためにジオロケーションから座標を取得しようとしています。Firefox、Chrome、Internet Explorerバージョン12.0、18.0.1025.168 m、9.0.8112.16421で実行しました。Firefoxでは、私の場所を共有する許可を求めます(私は受け入れます)。InternetExplorerはジオロケーションをサポートしていません。Chromeはその場所をサポートしていますが、場所を見つけられません。これが私のコードです

<div id="map" align="right" height="50%" width="50%"> </div>
<script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.8&appid=xoo5uJLV34FTpTmoqrs.mIQOX_DTcBhPowcz17ClEeb.jCIZ1Z6_Aa9FO8brGg--"></script>
<script type="text/javascript">

alert("ok ws dame");
if(navigator.geolocation) {
    alert("Great..Geolocation API is supported.");
    var map = new YMap(document.getElementById('map')); 
    map.addTypeControl(); 
    map.setMapType(YAHOO_MAP_REG);

    navigator.geolocation.getCurrentPosition(foundlocation,nolocation);

    function foundlocation(position){
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    alert(latitude+","+longitude);
    var coords = new YGeoPoint(latitude,Longitude);
    map.drawZoomAndCenter(coords,3);
    map.addMarker(coords);
    }
    function nolocation(error){
var map = new YMap(document.getElementById('map')); 
map.addTypeControl(); 
map.setMapType(YAHOO_MAP_REG);
    alert("Location not found.");
    // Display the map centered on a geocoded location
    map.drawZoomAndCenter("Patras", 3);
    var Lat = 38.2444444;
    var Lon = 21.7344444;
    var myPoint = new YGeoPoint(Lat,Lon);
    map.addMarker(myPoint);     
    }
}
else {
var map = new YMap(document.getElementById('map')); 
map.addTypeControl(); 
map.setMapType(YAHOO_MAP_REG);
    alert("Geolocation API is not supported in your browser.");
    // Display the map centered on a geocoded location
    map.drawZoomAndCenter("Patras", 3);
    var Lat = 38.2444444;
    var Lon = 21.7344444;
    var myPoint = new YGeoPoint(Lat,Lon);
    map.addMarker(myPoint);
}
</script>

(navigator.geolocation)がfalseを返す場合、マップ上の障害のない位置を正確に示します。これは、function(nolocation)でも同じように機能します。私の問題は、現在の場所を取得するときです。navigator.geolocation.getCurrentPosition(foundlocation、nolocation);の下にアラートメッセージを配置しました。関数(foundlocation)内では、メッセージは表示されません。助けていただければ幸いです。

4

3 に答える 3

1

エラー:var coords = new YGeoPoint(latitude、Longitude);

経度NOT大文字の経度「L」

それならうまくいきます!!

于 2012-05-17T02:30:25.330 に答える
0

それはうまくいきます。基本的には機能する場合と機能しない場合があります。理由はわかりませんが、コードは正常に機能します。

于 2012-05-18T14:50:45.787 に答える
0

「newYMap()」の代わりに「newY.Map()」を使用しています。同じ効果かもしれません。

于 2020-03-24T05:14:16.347 に答える