如何在c#中使用DbGeography保存谷歌地图多边形坐标

时间:2017-12-05 11:28:30

标签: c# asp.net google-maps google-maps-api-3

我已根据以下链接实施了谷歌地图绘制多边形 https://developers.google.com/maps/documentation/javascript/examples/drawing-tools

on" polygoncomplete"事件,我在下面调用了函数:

google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
            var polygonPoints = [];
            for (var i = 0; i < polygon.getPath().getLength(); i++) {
                var lat = polygon.getPath().getAt(i).lat();
                var lng = polygon.getPath().getAt(i).lng();
                polygonPoints.push({ lat: lat, lng: lng })
            }
            console.log(JSON.stringify(polygonPoints));

            $.ajax({
                type: 'POST',
                url: "@Url.Action("onPolygonComplete", "Utility")",
                data: JSON.stringify(polygonPoints),
                contentType: 'application/json; charset=utf-8',
                dataType: 'JSON',
                success: function (resultResponse) {
                    console.log(resultResponse)
                },
                error: function (e) {
                    console.log(e)
                }
            });
        });

准备多边形点JSON并使用DbGeography将多边形坐标保存在数据库中(例如:DbGeography.PolygonFromText(polygonWkt,4326))

在印度或其位置附近绘制多边形时,它已成功保存,但在中国或美国绘制多边形时,它会抛出错误:

  1. 指定的输入不代表有效的地理位置实例 因为它超过了一个半球。每个地理实例都必须 适合单个半球。这种错误的常见原因是 多边形的方向错误
  2. 纬度值必须介于-90到90度之间。
  3. 那么如何使用DbGeography.PolygonFromText()函数在数据库中保存多边形坐标

0 个答案:

没有答案