Полигон на карте Bing с использованием локального объекта GeoJSON приводит к неправильному расположению - PullRequest
0 голосов
/ 10 декабря 2018

Я использую Bing Map v8, чтобы нарисовать многоугольник на карте.по какой-то причине два разных метода для этого приводят к разным результатам, даже если я использую одни и те же координаты.

Этот метод, как показано здесь , работает хорошо:

        map = new Microsoft.Maps.Map(document.getElementById("map"), {
            credentials: '',
            mapTypeId: Microsoft.Maps.MapTypeId.aerial,

        });

        var polygon = new Microsoft.Maps.Polygon([
            new Microsoft.Maps.Location(32.57922,34.91395),
            new Microsoft.Maps.Location(32.53799,34.9021),
            new Microsoft.Maps.Location(32.53264,34.91292),
            new Microsoft.Maps.Location(32.55398,34.92339),
            new Microsoft.Maps.Location(32.57156,34.93489),
            new Microsoft.Maps.Location(32.57503,34.92614)],
            { fillColor: 'rgba(241, 227, 100, 0.3)', strokeColor: 'rgba(241, 227, 100, 0.8)', strokeThickness: 1 });


        map.entities.push(polygon);

При использовании этого метода Microsoft.Maps.GeoJson.read, как показано здесь для чтения объекта GeoJson с такими же координатами многоугольника, многоугольник рисуется в области за сотни миль к северо-западу от исходного местоположения,почему это так?

map = new Microsoft.Maps.Map(document.getElementById("map"), {
                credentials: '',
                mapTypeId: Microsoft.Maps.MapTypeId.aerial,

            });

            //define polygon using GeoJson Object
            var GeoJson = {
            "type": "Polygon",
            "coordinates": [[
                    [32.57922,34.91395],
                    [32.53799,34.9021],
                    [32.53264,34.91292],
                    [32.55398,34.92339],
                    [32.57156,34.93489],
                    [32.57503,34.92614]
                ]]
            };

            //Load the GeoJson Module.
            Microsoft.Maps.loadModule('Microsoft.Maps.GeoJson', function () {

                //Parse the GeoJson object into a Bing Maps shape.
                var shape = Microsoft.Maps.GeoJson.read(GeoJson, {
                    polygonOptions: {
                        fillColor: 'rgba(255,0,0,0.5)',
                        strokeColor: 'rgba(241, 227, 100, 0.8)',
                        strokeThickness: 1
                    }
                });
                //Add the shape to the map.
               //results in wrong location !
                map.entities.push(shapeA);
            });         

1 Ответ

0 голосов
/ 11 декабря 2018

Карты Bing Местоположения берутся по широте, долготе, а позиции / координаты GeoJSON - долгота / широта.Поменяйте местами числа в ваших координатах GeoJSON.

...