2017-04-21 117 views
-2

我在编写程序方面很新颖。所以我的任务是在谷歌地图卡中绘制标记。现在,这只有2个标记我已经完成了这在JavaScript中,这是没有问题的,但对于这个程序的未来,我需要这个在Java程序中的任务,它绘制2个标记,但我必须限制ma卡中的矩形形状,并且在这种形状中,它应该只是一个标记,而另一个标记在场外并且不应该是可见的!而这一切应该写在一个Java程序而不是JavaScript。 背景是这将在不久的将来成为一个追踪器,如一个在xml文件中保存了多个标记坐标的航班追踪器,这个坐标应该像一个真实的实时飞行追踪器一样自动刷新。为了下一步,我还通过websockets将javascript与我的java程序连接起来。Google地图标记只显示特定字段中的标记

但是起初我需要帮助来编写这个java程序,以及如何将它与JavaScript连接起来,我在那里显示谷歌地图卡。

谢谢你的帮助!

这里是我的Java脚本的代码与2点和新的Java程序,我只想在澳大利亚显示标记! 我在这个例子中展示的两个品脱来自一个XML文件,这是可以的,但是这个应该发生在java程序中,而不是在javascript中。

JavaScript代码:

<!DOCTYPE html > 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>tracker</title> 
    <style> 

     #map { 
     height: 100%; 
     } 

     html, body { 
     height: 100%; 
     margin: 0; 
     padding: 0; 
     } 
    </style> 

    </head> 

    <body> 
     <div id="map"></div> 


    <script> 

     function initMap() {     
     var map = new google.maps.Map(document.getElementById('map'), { 
      center: new google.maps.LatLng(52.556603, 30.244127),    
      zoom: 2   //Zoom-Stufe der Karte beim Laden der Seite 
     }); 



     var infoWindow = new google.maps.InfoWindow;   


      downloadUrl("vesselxml4.xml", function(data) {   
      var xml = data.responseXML;       
      var markers = xml.documentElement.getElementsByTagName('marker'); 
      Array.prototype.forEach.call(markers, function(markerElem) {  
      var name = markerElem.getAttribute('name');    
       var address = markerElem.getAttribute('address');   
       var point = new google.maps.LatLng(      
        parseFloat(markerElem.getAttribute('lat')), 
        parseFloat(markerElem.getAttribute('lng'))); 

       var infowincontent = document.createElement('div');  
       var strong = document.createElement('strong');   // 
       strong.textContent = name         
       infowincontent.appendChild(strong); 
       infowincontent.appendChild(document.createElement('br')); 

       var text = document.createElement('text');    
       text.textContent = address         
       infowincontent.appendChild(text); 


       var marker = new google.maps.Marker({      
       map: map, 
       position: point, 
       //icon: {             
        //path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW, 
        //scale: 3 
       //} 
       // 

       }); 



       marker.addListener('click', function() {     
       infoWindow.setContent(infowincontent); 
       infoWindow.open(map, marker); 
       }); 
      }); 
      }); 
     } 



     function downloadUrl(url, callback) {       
     var request = window.ActiveXObject ? 
      new ActiveXObject('Microsoft.XMLHTTP') : 
      new XMLHttpRequest; 

     request.onreadystatechange = function() {       

      if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
      } 
     }; 

     request.open('GET', url, true); 
     request.send(null); 
     } 

     function doNothing() {} 

     </script> 
    <script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDuZVG0Z9Ei7ubm5bkAfPsYUI-Wm8C_c-0&callback=initMap"> 
    </script> 
    </body> 
</html> 

xml文件:

<markers> 
<marker id="1" lng="131.044" lat="-25.363" name="JUN XING 1" /> 
<marker id="2" lng="101.786155" lat="26.200722" name="NO PLANS" /> 
</markers> 
+0

请删除java标签 - 它与它无关。 – Felix

+0

是的,我知道,但我想要这样一个Java程序来做到这一点!检查这两个标记是否在自定义的矩形字段中。如果标记在此字段中,则应该在卡片 – Hans

+0

中显示您的意思是地图在谈论卡片? – Felix

回答

0

如何设置在谷歌地图API V3标志:

var marker1 = new google.maps.Marker({ 
    position: {lat: -25.363, lng: 131.044}, 
    map: map, 
    title: 'JUN XING 1' 
}); 


var marker2 = new google.maps.Marker({ 
    position: {lat: 26.200722, lng: 101.786155}, 
    map: map, 
    title: 'NO PLANS' 
}); 

插入该给你的函数initMap()在map后分配。

+0

好的非常感谢你。但问题是,这两个标记只是为了测试这个。我有一些带有标记数据的XML文件。所以如果我在JavaScript中这样做,它会得到性能问题。所以我需要一个Java程序加载这个XML文件并在地图上绘制这些标记。最后,它应该像一个每分钟刷新标记的飞行员。这就是为什么我需要一个java程序的原因,如果我只能用java程序加载xml文件并在地图上绘制这几千个标记,那么第一步就可以了。 – Hans

+0

在最好的情况下,它只绘制这些标记落在一个可以被定义为澳大利亚例子的特定的矩形区域中。所以,如果在这个文件中是非洲的标记... Java程序请参阅ut并且不会将此标记绘制到地图上。这样的程序非常棒。我知道这也适用于JavaScript位,如果我在将来每分钟刷新这些标记。我认为这将不会工作得很好。 – Hans