API Карт Google - смещение для изображения маркера - замена маркера - не в геопозиции
У меня есть образ (круг), который должен указывать на конкретную столичную область. Также у меня есть GeoPosition
всех моих соответствующих областей.
Если я помещаю свои маркеры, нижняя часть моего изображения находится на отметке GeoPosition
. Но из-за его аэрофотоснимка я хотел бы сделать изображение смещением, поэтому центр моего изображения cirle находится в этом GeoPosition
...
Любые идеи, как достичь этого?
Спасибо!
Ответы
Ответ 1
Благодаря LeJared я нашел решение. Моя проблема заключалась в том, что я думал, что MarkerImage
заменяет Marker
. Но сначала нужно определить изображение и вставить его позже в Marker
.
Пример:
Сначала определите образ:
var image = new google.maps.MarkerImage("some/path/image.png",
// This marker is 20 pixels wide by 32 pixels tall.
null,
// The origin for this image is 0,0.
new google.maps.Point(0,0),
// The anchor for this image is the base of the flagpole at 0,32.
new google.maps.Point(75, 35)
);
Затем вставьте его в обычный маркер:
var myMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image,
title: "My Title",
});
Ответ 2
Начиная с Google API версии 3.11, MarkerImage
был заменен на Icon
. Итак, вот новый способ масштабирования маркера до 50 пикселей и его расположение таким образом, чтобы его центр находился на геолокации:
var image = {
url: '/some/path/image.png',
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(25, 25),
scaledSize: new google.maps.Size(50, 50)
};
var myMarker = new google.maps.Marker({
position: position,
icon: image,
title: 'title',
map: map
});
Ответ 3
Вы должны указать, где находится опорная точка в вашем файле markerImage. См. Документы: https://developers.google.com/maps/documentation/javascript/reference?hl=de#MarkerImage
Если не указано Google считать центром нижнего края вашего MarkerImage в качестве точки привязки.
Вот пример в документах API, как построить сложный маркер с правильным маркером. https://google-developers.appspot.com/maps/documentation/javascript/examples/icon-complex?hl=de
Ответ 4
Вот мой пример.
new google.maps.Marker({
position: pos,
map: map,
icon: {
url: src,
anchor: new google.maps.Point(25, 25),
origin: new google.maps.Point(0, 0),
scaledSize: new google.maps.Size(50, 50)
}
});