2016-03-21 2 views
0

Так что я попытался нарисовать линию сетки на моей карте, и я нашел хороший пример на Google API документации здесь: https://developers.google.com/maps/documentation/javascript/examples/maptype-baseПользовательские наложения в Google Maps области щелкнул затем увеличить

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

google.maps.event.addListener(map, "click", function (e) { 
    var latLng = e.latLng; 
    map.setCenter(new google.maps.LatLng(latLng.lat(), latLng.lng())); 
    map.setZoom(17); 
}); 

он работает либо, но, как вы можете видеть, широта и долгота точное место, где щелкнул курсор/указатель, это не в середине прямоугольника или области это означает карту после того, как изображение увеличено неправильно. Может ли кто-нибудь помочь мне с этим?

ответ

0

Я думаю, проблема в том, что вы используете наложение (как линия сетки), при использовании наложения на плитки API Google Maps разбивает изображения на каждом уровне масштабирования на набор квадратной плитки, размещенной в сетке. Когда карта перемещается в новое место или на новый уровень масштабирования, API Карт определяет, какие плитки необходимы и переводит эту информацию в набор фрагментов для извлечения.

Например, каждый уровень увеличения увеличивает коэффициент усиления в два раза. Таким образом, при уровне масштабирования 1 карта будет отображаться как сетка 2x2 из черепицы. На уровне увеличения 2 это сетка 4x4. На уровне увеличения 3 это сетка 8x8 и так далее.

Поэтому, когда вы увеличиваете масштаб, координаты, которые вы нажимаете, не всегда посередине, потому что наложение плитки не установлено из-за вашей координаты. Для получения дополнительной информации о оверлейте, пожалуйста, page.

Вы также можете проверить это SO question для получения дополнительной информации.

Смежные вопросы