【问题标题】:geolocation yahoo maps api地理定位雅虎地图API
【发布时间】:2012-05-23 13:15:57
【问题描述】:

我正在尝试从地理位置获取坐标以在我的雅虎地图中使用。我已在 Firefox、Chrome 和 Internet Explorer 版本 12.0、18.0.1025.168 m 和 9.0.8112.16421 中运行它。在 Firefox 中,它要求允许共享我的位置(我接受),Internet Explorer 它不支持地理定位,而 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,则它会正确显示地图上的默认位置。这在函数 (nolocation) 中的工作方式相同。我的问题是当我获得当前位置时。我已将警报消息放在 navigator.geolocation.getCurrentPosition(foundlocation,nolocation);并且在函数内部(foundlocation)它从不显示消息。任何帮助表示赞赏..

【问题讨论】:

    标签: javascript html geolocation yahoo-api yahoo-maps


    【解决方案1】:

    您的错误:var coords = new YGeoPoint(latitude,Longitude);

    经度不是带大写“L”的经度

    然后工作正常!

    【讨论】:

    • 好的..这可能是一个错误。但它没有到达那里..在那之前有一个问题..
    • 这就是地理定位的工作方式,即使 w3schools 中的示例并非每次都有效。
    • 是的,它有时会起作用,但我希望它每次都能起作用。也许是网络问题,但代码很好。
    【解决方案2】:

    它工作正常。基本上有时它有效,而另一些则无效。我不知道为什么,但代码工作正常。

    【讨论】:

      【解决方案3】:

      我使用“new Y.Map()”而不是“new YMap()”。也许效果一样。

      【讨论】:

        猜你喜欢
        • 2016-04-27
        • 2010-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-19
        • 2019-09-10
        相关资源
        最近更新 更多