Фальшивый маркер openlayers (функция со значком) от WKT
У меня есть точечный объект WKT. Как это: POINT (25.04568 48.221548)
, Также у меня есть значок в папке моего проекта.
Моя цель - показать на карте значок, представляющий объект. Может ли это быть просто обычная функция OpenLayers (если да, то как я могу определить, что она должна представлять и значок) или мне нужно создать маркер OpenLayers (каким-то образом создать LonLat из WKT)?
Отлично, если кто-нибудь покажет, как это сделать.
1 ответ
Довольно просто добавить значок, если у вас есть точка.
Просто посмотрите исходный код javascript на этой странице: страница с примерами маркеров OpenLayers
Важно помнить, что если вы используете значок, вы должны использовать.clone() на нем, если вам нужно, чтобы он отображался более одного раза. Пример кода из приведенного выше примера:
"...
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
var size = new OpenLayers.Size(21,25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));
var halfIcon = icon.clone();
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,45),halfIcon));
marker = new OpenLayers.Marker(new OpenLayers.LonLat(90,10),icon.clone());
..."
Примерно так на вашем точечном объекте:
point.transform(
new OpenLayers.Projection("EPSG:900913"), //from
map.getProjectionObject() //to
);
Конечно, вам нужно знать, какова ваша проекция очков. Есть много примеров там.