Вот вроде бы хороший компонент SOBI2 но кривоватый он какойто.
Возникла проблема с картой.
Использую версию RC 2.9.2.3 на Joomla 1.0.15
В SOBI2 встроена поддержка
Google карты но уж как то криво встроена.
При добавлении записи по умолчнанию нужно тупо вбивать координаты и карта не отображается.
Используя руководство с оффсайта можно добавить код карты в новое поле и тогда появится сама карта но вот отмечать на ней уж очень неудобно ибо при нажатии на карту маркер не ставится а ток пишутся координаты в поля.. а пользователь остается в недоумении..
Решил я исправить это и отредактировал код, при нажатии маркер появляется.. координаты пишутся но если кликнуть в другом месте создается еще один маркер и тд.. вот собсна вопрос:
подскажите как ограничить каличество маркеров чтоб при последующих нажатия маркер перемещался а не создавался новый?Код:
<script src="http://maps.google.com/maps?file=api&v=1&key={googleApiKey}" type="text/javascript"></script>;
<div id="map" style="width: 400px; height: 300px"></div>
<script type="text/javascript">
//<![CDATA[
var start_latitude = "52.4777619318499";
var start_longitude = "-1.89788818359375";
var zoomlevel_add = 11;
var zoomlevel_edit = 3;
var map = new GMap(document.getElementById("map"));
map.addControl(new GSmallMapControl());
var latitude = document.getElementById('field_latitude').value;
if (latitude == "")
latitude = start_latitude;
var longitude = document.getElementById('field_longitude').value;
if (longitude == "")
longitude = start_longitude;
if (latitude == start_latitude)
zoomlevel = zoomlevel_add;
else
zoomlevel = zoomlevel_edit;
// center and zoom to the lat/long in the form
map.centerAndZoom(new GPoint(longitude,latitude), zoomlevel);
GEvent.addListener(map, 'click',
function(overlay, point) {
if (point) {
document.getElementById('field_latitude').value = point.y;
document.getElementById('field_longitude').value = point.x;
}
}
);
GEvent.addListener(map, "click", function(overlay, latlng) {
if (latlng) {
marker = new GMarker(latlng, {draggable:true});
map.addOverlay(marker);
}
});
//]]>
</script>