Autor Tema: ImageGPS (multiple markers - show and hide - from xml)  (Leído 4239 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cliv

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +1/-2
    • Ver Perfil
ImageGPS (multiple markers - show and hide - from xml)
« en: Junio 06, 2014, 07:42:23 am »
I download ImageGPS from "Coordenadas GPS en imagenes" and i modify to show infoWindows for one marker and hide one marker.
Now i try to show multiple markers from an xml file ... and then hide all...but I did something wrong because i do not work with java.

File "data.xml" contain data for markers and file "downloadXML.js" contain java script to read xml data file...and was added to "mapa.html"
Código: [Seleccionar]
<script type="text/javascript" src="downloadXML.js"></script>


Source Code
http://http://www.mediafire.com/download/aanup8ijq338pnx/MapaNew.rar

Please help me to modify java to show and hide multiple markers...
Thank you..

« última modificación: Junio 06, 2014, 09:23:30 am por cliv »

cliv

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +1/-2
    • Ver Perfil

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:ImageGPS (multiple markers - show and hide - from xml)
« Respuesta #2 en: Junio 06, 2014, 09:30:53 pm »
Hi Cliv, the problems is the var marker, must be declared as an array, var marker = new Array();   then stores each google.maps.Map () within this array

Código: (java) [Seleccionar]
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0}
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"src="http://maps.googleapis.com/maps/api/js?&sensor=false"></script>
<script type="text/javascript" src="downloadXML.js"></script>

    <script type="text/javascript">
var map
var marker = new Array();
var ObjParent

function initialize(Lat, Lng) {
var latlng = new google.maps.LatLng( 44.314337, 23.797633);

var mapOptions = {
  center: latlng,
  zoom: 17,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  mapTypeControl: false,
  panControl: false,
  streetViewControl: false,
  zoomControl: false
};

map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
marker[0] = new google.maps.Marker({
position: latlng,
icon:'MapPin.png',
draggable:false,
map:map,
title:"Click for coordonate"
});   

google.maps.event.addListener(marker[0], 'click', function(event) {
var point_click = marker.getPosition();
ObjParent.ClickMarkerEvent(point_click.lat(),point_click.lng());
});
}
 

function show_position(Lat, Lng, showInfo, strHeader, strComment){
var pos=new google.maps.LatLng(Lat, Lng);
map.setCenter(pos);
marker[0].setPosition(pos);
marker[0].setMap(map);
marker[0].setTitle("Click for coordonate");

if (showInfo==true) {
var html_text = "<table><tr><td style='font-family:Arial, Helvetica, sans-serif;font-weight:bold; color:#FF0000; font-size:20px'>" + strHeader + "</td></tr><tr><td>" + strComment + "</td></tr><tr><td align='center'></td></tr></table>";
var infowindow = new google.maps.InfoWindow({
content: html_text
});
infowindow.open(map,marker[0]);
}
}


function hide_position() {
marker[0].setMap(null);
}


function show_multiposition(xmlFile,showInfo){
downloadUrl(xmlFile, function(data) {
var xml = xmlParse(data);
var markers = xml.documentElement.getElementsByTagName("marker");

for (var i = 0; i < markers.length; i++) {

var point = new google.maps.LatLng(
                        parseFloat(markers[i].getAttribute("Lat")),
                        parseFloat(markers[i].getAttribute("Lng")));
var markerHeader = markers[i].getAttribute("Header");
var markerComment = markers[i].getAttribute("Comment");

//alert(point);

marker[i] = new google.maps.Marker({draggable:false,icon:'MapPin.png'});
map.setCenter(point);
marker[i].setPosition(point);
marker[i].setMap(map);
marker[i].setTitle("Click for coordonate");

if (showInfo==true) {
var html_text = "<table><tr><td style='font-family:Arial, Helvetica, sans-serif;font-weight:bold; color:#FF0000; font-size:20px'>" + markerHeader + "</td></tr><tr><td>" + markerComment + "</td></tr><tr><td align='center'></td></tr></table>";
var infowindow = new google.maps.InfoWindow({
content: html_text
});
infowindow.open(map,marker[i]);
}
}
});
}


function hide_multiposition() {
// Hide multi marker
for (var i = 0; i < marker.length; i++) {
marker[i].setMap(null);
}
}

    </script>
  </head>
  <body scroll="no" onload="initialize(0, 0)">
    <div id="map_canvas" style="width:100%; height:100%"></div>
  </body>
</html>

cliv

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +1/-2
    • Ver Perfil
Re:ImageGPS (multiple markers - show and hide - from xml)
« Respuesta #3 en: Junio 10, 2014, 02:35:13 am »
Thank you very much but I think Click Event should be

Código: [Seleccionar]
google.maps.event.addListener(marker[0], 'click', function(event) {
                                var point_click = marker[0].getPosition();
                                ObjParent.ClickMarkerEvent(point_click.lat(),point_click.lng());
                        });

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:ImageGPS (multiple markers - show and hide - from xml)
« Respuesta #4 en: Junio 10, 2014, 02:48:13 am »
if you want to add the click event, add these lines but do not forget to replace


Citar
google.maps.event.addListener(marker[0], 'click', function(event) {
                                var point_click = marker[0].getPosition();
                                ObjParent.ClickMarkerEvent(point_click.lat(),point_click.lng());
                        });
Citar
google.maps.event.addListener(marker[i], 'click', function(event) {
                                var point_click = marker[i].getPosition();
                                ObjParent.ClickMarkerEvent(point_click.lat(),point_click.lng());
                        });

cliv

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +1/-2
    • Ver Perfil
Re:ImageGPS (multiple markers - show and hide - from xml)
« Respuesta #5 en: Junio 10, 2014, 03:27:09 am »
Thank you for multi - click event but not work .... i have an error



« última modificación: Junio 10, 2014, 08:58:08 am por cliv »

cliv

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +1/-2
    • Ver Perfil
Re:ImageGPS (multiple markers - show and hide - from xml)
« Respuesta #6 en: Junio 10, 2014, 06:34:06 am »
i change:
Código: [Seleccionar]
google.maps.event.addListener(marker[i], 'click', function(event) {
                      var point_click = marker[i].getPosition();
                      ObjParent.ClickMarkerEvent(point_click.lat(),point_click.lng());
          });

to:
Código: [Seleccionar]
google.maps.event.addListener(marker[i], 'click', function(event) {
                     var point_click = this.getPosition();
                     ObjParent.ClickMarkerEvent(point_click.lat(),point_click.lng());
        });

and now work!

Thank you Leandro ...
« última modificación: Junio 10, 2014, 08:59:13 am por cliv »