Google maps - показать окно маркера из списка результатов - PullRequest
1 голос
/ 21 августа 2009

код

//array store the markers

var googleMarker = [];

//this function get json object with the marker data
//place name,place id,place address.

function AjaxGetUserToPlaces(res)
{
    var l = res.value.length; 

    for(var i=0;i<l;i++)
    {
        var point = new GLatLng(res.value[i].lng,res.value[i].lat)
        map.addOverlay(createMarkerInfo(i,point,res.value[i].placeName,res.value[i].placeId));
        polylineArray.push(point);
    }
}

//the function create the openWindow for the marker.

function createMarkerInfo(i,latlng , placeName,placeId)
 {
    var marker = new GMarker(latlng);
    marker.value = placeId;

    GEvent.addListener(marker, 'click', function()
    { 
    marker.openInfoWindowHtml(''+
    '<a href='+baseUrl+'ui/pages/place/place.aspx?plid='+placeId+'>'+placeName+'</a>');
        });
        googleMarker[i] = marker

    return marker;
}



//this function occur when user click on one of the result.
//it gets the number in the array googleMarker.

function showMarkerInfoWindow(i)
{

//here i want to open the marker info window.
//pay attention, i dont have the html to put inside the infowindow
//i want just to show the infowindoe with the exising html 
//that created prevusly from the function createMarkerInfo

     googleMarker[i].openInfoWindowHtml();
}

Ответы [ 3 ]

0 голосов
/ 21 августа 2009

Вы можете вызвать событие щелчка на маркере, чтобы открыть его информационное окно:

GEvent.trigger(googleMarker[i], googleMarker[i].getLatLng());
0 голосов
/ 06 сентября 2010

Пример геокодера http://gmaps -samples-v3.googlecode.com / svn / trunk / geocoder / v3-geocoder-tool.html выглядит так, как вы хотите (см. Источник)

0 голосов
/ 21 августа 2009

РЕДАКТИРОВАНИЕ: Если у вас есть координаты, вы можете напрямую передать значения в функцию createMarker () Как это:

HTMLCODE:

<a href="javascript:void(0);" onMouseOver="javascript:createMarker(lat1,lng1,msg1);">List1</a>
<a href="javascript:void(0);" onMouseOver="javascript:createMarker(lat2,lng2,msg2);">List2</a>
<a href="javascript:void(0);" onMouseOver="javascript:createMarker(lat3,lng3,msg3);">List3</a>

JS CODE:

 function createMarker(x,y,msg) { 
    var point = new GLatLng(x,y);  
    var myHtml = msg;
    var baseIcon = new GIcon();
    baseIcon.shadow = "";
    baseIcon.iconSize = new GSize(20, 34);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    baseIcon.infoShadowAnchor = new GPoint(18, 25);
    var letteredIcon = new GIcon(baseIcon);
    letteredIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/marker.png";
    markerOptions = { icon:letteredIcon };
    var marker = new GMarker(point,markerOptions); 
    GEvent.addListener(marker, "mouseover", function() {    
        map.openInfoWindowHtml(point, myHtml);  
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...