GeoCoordinateWatcher不在Azure中工作

时间:2017-08-03 17:01:57

标签: c# asp.net-mvc azure model-view-controller

我在GeoCoordinateWatcher localhost中使用C#但在Azure中发布时无效。

GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
            string cordenadas = "";

            watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));

            GeoCoordinate coord = watcher.Position.Location;

            if (coord.IsUnknown != true)
            {
                cordenadas ="Latitud: " + coord.Latitude + ", Longitud: " + coord.Longitude;
            }
            return cordenadas;

1 个答案:

答案 0 :(得分:1)

根据GeoCoordinateWatcher.TryStart method description

  

请注意
  在Windows 7之前的Windows版本中,以下条件适用:   可以创建具有构造函数的所有System.Device.Location对象,但Status属性的值始终为Disabled。   “位置”的“位置”属性指示的位置始终为“未知”。   不会引发任何地点事件。

Web应用服务器的操作系统是Windows NT 6.2,因此我们无法使用GeoCoordinateWatcher获取该位置。 “位置”的“位置”属性将始终为“未知”。

我已远程调试网络应用程序。

enter image description here

网络应用操作系统:

enter image description here

  

我希望你不要拿服务器的坐标

你是说你想得到客户的坐标吗?如果这是您的要求。我建议你可以尝试使用javascript navigator.geolocation.getCurrentPosition()方法来获取客户端用户的位置。

更多细节,您可以参考以下代码。

<!DOCTYPE html>
<html>
<body>

    <p>Click the button to get your coordinates.</p>

    <button onclick="getLocation()">Try It</button>

    <p id="demo"></p>

    <script>
var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude +
    "<br>Longitude: " + position.coords.longitude;
}
    </script>

</body>
</html>

结果:

enter image description here