Google Map API - поиск маркера в видимой части карты. Как?

humbert
На сайте с 16.03.2006
Offline
540
1972

Привет, спецы по картам Гугла.

Не могу понять, как делать поиск маркера в видимой части карты.

Имеем - кучу маркеров с координатами в системе Google Map: широта, долгота

и видимую часть карты с координатами через getBounds(): точка 1(широта, долгота), точка 2 (широта, долгота).

Как осуществить сам поиск?

В двухмерной системе координат я бы просто смотрел чтобы точка была в диапазоне x>=x1 и x<=x2 и y>=y1 и y<=y2.

Но с географическими координатами непонятно.

Парсинг прайс-листов, наполнение интернет-магазина товаром. (https://humbert.ru) Любая CMS (Битрикс, OpenCart, Prestashop и даже Woo Commerce )
[Удален]
#1
humbert:
Но с географическими координатами непонятно.

а где там география? гугль мапс как раз двухмерная система координат, не придумывайте сложность и ищите так же, поиск не делал, но мапсы очевидно устроены

humbert
На сайте с 16.03.2006
Offline
540
#2

Вот точки карты (широта, долгота):

1. SW (y1=-89.8624266581673, x1=97.03125)

2. NE (y2=89.8923677385538, x2=-172.96875)

Вот сама точка: (y=56.52272796630859, x=43.22233581542969)

Как математически сделать сравнение? Я туплю. но не врубаюсь вторые сутки.

Если y входит в диапазон y>=y1 and y<=y2, то вот с x непонятно: x>=x1 and x<=x2 - не входит.

Но вот так x<=x1 and x>=x2 работает.

Вот другие точки карты (широта, долгота):

1. SW (y1=-49.724479188712984, x1=36.6943359375)

2. NE (y2=57.016814017391106, x2=57.78808593749999)

Точка та же: (y=56.52272796630859, x=43.22233581542969)

y>=y1 and y<=y2 - работает

x<=x1 and x>=x2 - уже не работает, но начал работать x>=x1 and x<=x2

T.R.O.N
На сайте с 18.05.2004
Offline
314
#3

humbert,

гуглу не пользую, больше нравится яшина. У нее есть такая штука getCoordBounds, она возвращает координату верхней левой и правой нижней точек. У гугла обязательно есть подобное....

T.R.O.N добавил 31.03.2010 в 16:28

humbert:
Как математически сделать сравнение?

чего с чем?

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
humbert
На сайте с 16.03.2006
Offline
540
#4

T.R.O.N, я выше добавил математику. Сложная она какая-то:)

Точки SW - верхняя левая, точка NE - нижняя правая

[Удален]
#5
humbert:
Вот другие точки карты (широта, долгота):
1. SW (y1=-49.724479188712984, x1=36.6943359375)
2. NE (y2=57.016814017391106, x2=57.78808593749999)

Точка та же: (y=56.52272796630859, x=43.22233581542969)

y>=y1 and y<=y2 - работает
x<=x1 and x>=x2 - уже не работает, но начал работать x>=x1 and x<=x2

абсолютный бред, при этих точках 100 пудов должно работать, за знаками последите, где то у вас ошибка 100%

humbert
На сайте с 16.03.2006
Offline
540
#6

Вот пример1:

[ATTACH]58989[/ATTACH]

Вот пример 2:

[ATTACH]58990[/ATTACH]

Вот пример 3:

[ATTACH]58991[/ATTACH]

В первых двух примерах на экране был нулевой меридан, в третьем карта нормально показывалась, без нулевого

jpg 1.jpg
jpg 2.jpg
jpg 3.jpg
jpg 4.jpg
humbert
На сайте с 16.03.2006
Offline
540
#7

Задачу решил, исключив zoom менее 5. Т.е. запретил увеличивать масштаб сильно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий