2016-10-18 2 views
-1

У меня есть полная страница, и я бы хотел сделать это: исправить многоугольник/прямоугольник над частью карты, например such, так что многоугольник останется в то же место, даже если, скажем, карта была перетащена. Затем я хотел бы установить центр многоугольника на любой поисковый запрос. Here is another image to illustrate what I mean. К сожалению, из документации кажется, что вы можете создавать только полигоны в другом слое, которые остаются, так сказать, прикрепленными к конкретным плиткам на базовой карте. В дополнение к этому, помимо задания границ, в документации не указаны методы установки центра многоугольника.Использование центра полигона как центра карты

Таким образом, у меня есть несколько вопросов:

  1. Возможно ли это исправить многоугольник/прямоугольник на карте, а не в отношении, но, независимо от положений фрагментов карты в базовом слое ?
  2. Можно ли установить центр многоугольника/прямоугольника на объект LatLng (или что-то подобное), а затем использовать эту ориентацию для размещения карты в целом?

P.S. Если вы собираетесь downvote моего вопроса, по крайней мере, указать причину и дать мне возможность выступить независимо от вашего вопроса с вопросом может быть ...

ответ

0

Я рекомендовал бы абсолютное позиционирование в DIV, как этот

<div id="mapdiv"> 
<div id="rect"></div> 
</div> 

и CSS

#mapdiv { 
    position:relative; 
    width:600px; 
    height:400px; 
    background-color:#333; 
} 
#rect { 
    position:absolute; 
    top: 10%; 
    left: 10%; 
    width:80%; 
    height:80%; 
    background-color:#FFF; 
} 

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

+0

Да, извините, может быть, я не был достаточно ясен. Я думаю, что многоугольник/прямоугольник должен быть частью API Google Карт или принадлежать ему (чтобы получить геокоординаты, а что нет), потому что я планирую сделать центр многоугольника/прямоугольника центром карты, позволяя карта будет полной. В основном то, что я хочу сделать, это манипулировать позицией «центра» карты. Спасибо за вашу заботу, тем не менее! @DevFX – gatekeeper01

+0

Я знаю, что, возможно, возможно позиционировать многоугольник в абсолютно неподвижной позиции над картой, но, возможно, интенсивная часть вычисляет границы карты по отношению к размеру окна, а затем вычитает X и Y из границ карты в создайте границы для многоугольника. Однако я надеюсь, что есть более простой способ. Как вы думаете? – gatekeeper01

0

Извините за этот последний ответ ... неправильно поняли. Вы пробовали это плюс добавлено смещением ширины окна

function polygonCenter(poly) { 
    var lowx, 
     highx, 
     lowy, 
     highy, 
     lats = [], 
     lngs = [], 
     vertices = poly.getPath(); 

    for(var i=0; i<vertices.length; i++) { 
     lngs.push(vertices.getAt(i).lng()); 
     lats.push(vertices.getAt(i).lat()); 
    } 

    lats.sort(); 
    lngs.sort(); 
    lowx = lats[0]; 
    highx = lats[vertices.length - 1]; 
    lowy = lngs[0]; 
    highy = lngs[vertices.length - 1]; 
    center_x = lowx + ((highx-lowx)/2); 
    center_y = lowy + ((highy - lowy)/2); 
    return (new google.maps.LatLng(center_x, center_y)); 
    } 

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

Edit: нашел эту ссылку здесь на стеке должно фактически работать, не зная настройки. how-do-i-get-google-maps-to-show-a-whole-polygon

+0

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