//Иконки
var icon_mecop,//текущий игрок-коп
	icon_ancop,//другой игрок-коп
	icon_megan,//текущий игрок-гангстер
	icon_angan;//другой игрок-гангстер
function init() 
{
	var size = new OpenLayers.Size(32,32);							//размер маркера
	var offset = new OpenLayers.Pixel(-(size.w/2), -(size.h/2));
	icon_mecop = new OpenLayers.Icon(markerMeCopPath, size, offset);
	icon_ancop = new OpenLayers.Icon(markerAnCopPath, size, offset);
	icon_megan = new OpenLayers.Icon(markerMeGanstaPath, size, offset);
	icon_angan = new OpenLayers.Icon(markerAnGanstaPath, size, offset);
	
	if (isgansta)
		myicon = icon_megan;
	else myicon = icon_mecop;

	//собственно, определяем координаты через жпс
	navigator.geolocation.getCurrentPosition(
		geo_success, //эта функция вызовется в случае успеха определения местоположения 
		geo_error, //эта функция вызовется, если произойдёт ошибка 
		{ maximumAge: 0, timeout: 30000, enableHighAccuracy: true }); //Это нужно раскомментировать для тестирования на реальном устройстве
	
	//Обновление текущей позиции
	intervalGetCurpos = setInterval(function() {
		navigator.geolocation.getCurrentPosition(updatepos,
				geo_error, { maximumAge: 0, timeout: 13000, enableHighAccuracy: true});
	}, 15000);
	intervalallCurPos = setInterval(setupPosition, 15000);
}

function updatepos(position) 
{
	//alert('success in position determination');
	positionUser=position.coords;
	putMarker(position.coords.longitude, position.coords.latitude, myicon);

Прорисовка тут:


function setupPosition()
{
var icon = icon_angan.clone();
putMarker(garray[i].lon, garray[i].lat, icon);
}

function putMarker(lon, lat, icon)
{
	  markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(lon + 0.0001, lat + 0.0001)
	    .transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")),icon));
}

garray - Это массив маркеров с координатами