Google Maps API v3 - скрыть маркеры не из выбранной страны - PullRequest
3 голосов
/ 24 января 2012

Привет, ребята, есть ли возможность скрыть маркеры, которые не из определенной страны, например, у меня есть выпадающее меню с Англией, Уэльсом, Шотландией и т. Д.

Если пользователь выбирает Уэльс - карта увеличивается доУэльс и показывает все маркеры в пределах определенного радиуса, но я хотел бы, чтобы любые маркеры, которые находятся рядом с валлийской границей, не появлялись, поскольку они не находятся в Уэльсе.

Есть идеи?

1 Ответ

1 голос
/ 24 января 2012

Определите полигон, который охватывает только Уэльс (вы должны будете сделать это самостоятельно; я не думаю, что Google волшебным образом даст вам это).Рисуйте только те маркеры, которые попадают в этот многоугольник.

Сложная часть вычисляется, если координата широты находится внутри многоугольника. Вот решение кто-то разработал, но он использует синтаксис Google Maps API v2, а не синтаксис v3, который, я полагаю, вы будете использовать.К счастью, кто-то другой уже переписал его и для API 3.

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

polygon = new google.maps.Polygon({
            paths: [
                new google.maps.LatLng(51.478316,-0.002888),
                new google.maps.LatLng(51.479245,-0.001051),
                /// ... array of all the coordinates making up the path of your polygon
            ],
            strokeOpacity: 0.0,
            fillOpacity: 0.0,
            map: map
        });
...