@kzk8888

Определения входа точки в полигон яндекс карты. Можете помочь?

Рисую карту при загрузке страницы, также полигон.
Полигон граница города.
При клике хочу определить, точка в городе или нет.
Голову ломал и не смог найти решения, пжл помогите.

ymaps.ready( init );

    function init(){

        myMap = new ymaps.Map( "checkout-map", {
            center: [ 43.24, 76.91 ],
            controls: ['zoomControl'],
            zoom: 15
        },
        {suppressMapOpenBlock: true});

        var myPolygon = new ymaps.geometry.Polygon(
                [
                    [76.780685,43.333234],
                    [76.80077,43.331605],
                    [76.804632,43.356099],
                    [76.849135,43.355566],
                    [76.855937,43.336508],
                    [76.866205,43.350532],
                    [76.883698,43.341759],
                    [76.879742,43.330605],
                    [76.937845,43.382899],
                    [76.96312,43.379737],
                    [76.983998,43.405447],
                    [77.004736,43.401277],
                    [77.020942,43.385172],
                    [77.018058,43.36259],
                    [77.035087,43.361046],
                    [77.067703,43.375198],
                    [77.086071,43.373257],
                    [77.037577,43.342726],
                    [77.043713,43.334973],
                    [76.995605,43.290113],
                    [77.01569,43.286248],
                    [77.019552,43.261213],
                    [77.068175,43.218318],
                    [77.106906,43.177515],
                    [77.123182,43.188262],
                    [77.151232,43.184591],
                    [77.157705,43.173207],
                    [77.149611,43.15897],
                    [77.104366,43.148331],
                    [77.072473,43.157841],
                    [77.07232,43.145001],
                    [77.115845,43.116199],
                    [77.110828,43.110346],
                    [77.091497,43.116977],
                    [77.083205,43.111741],
                    [77.085213,43.078324],
                    [77.091392,43.050127],
                    [77.037147,43.03552],
                    [76.982216,43.041815],
                    [76.939987,43.036148],
                    [76.938785,43.049179],
                    [76.968397,43.070546],
                    [76.953334,43.07871],
                    [76.901685,43.07801],
                    [76.888907,43.130238],
                    [76.866554,43.126039],
                    [76.859153,43.142044],
                    [76.793388,43.143465],
                    [76.776308,43.159263],
                    [76.789451,43.170096],
                    [76.786752,43.189079],
                    [76.779934,43.194242],
                    [76.768454,43.215141],
                    [76.768991,43.236032],
                    [76.769527,43.248886],
                    [76.782659,43.254197],
                    [76.789912,43.279935],
                    [76.754056,43.29305],
                    [76.737502,43.315903],
                    [76.753791,43.318858],
                    [76.75978,43.314793],
                    [76.780704,43.321508]
                ]

        );

        myPolygon.options.setParent(myMap.options);
        myPolygon.setMap(myMap);

        // Слушаем клик на карте.
        myMap.events.add( $clickAction , function (e) {
            var coords = e.get('coords');

            // Если метка уже создана – просто передвигаем ее.
            if (myPlacemark) {
                myPlacemark.geometry.setCoordinates(coords);
                myPlacemark.options.set('visible', true);
            }
            // Если нет – создаем.
            else {
                myPlacemark = createPlacemark(coords);
                myMap.geoObjects.add( myPlacemark );
                // Слушаем событие окончания перетаскивания на метке.
                myPlacemark.events.add('dragend', function () {
                    getAddress(myPlacemark.geometry.getCoordinates());
                });
            }
            getAddress(coords);

            alert(myPolygon.geometry.contains( coords ) ? 'город' : 'загород');

        });

    }
  • Вопрос задан
  • 989 просмотров
Пригласить эксперта
Ответы на вопрос 3
saintbyte
@saintbyte
Django developer
Postgres + Postgis и никаких яндексов.
Ответ написан
Ответ написан
Комментировать
@kzk8888 Автор вопроса
решение сам нашел. Координаты полигона моего были некорректные. Скрипт сам рабочий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы