2017-09-12 2 views
0

Je vais avoir un script pour voir les polygones sur google maps, mais je veux changer mes coordonnées de polygone quand je clique sur le lien hypertexte. Ce script que je suis en utilisant:Comment remplacer des données dans mon fichier javascript avec un lien hypertexte vers ce fichier

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY_IS_HERE&libraries=geometry,places&ext=.js" ></script> 
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
    <div id="map_canvas" ></div> 
    <style> 
      /* Always set the map height explicitly to define the size of the div 
      * element that contains the map. */ 
      #map_canvas { 
       height: 100%; 
      } 
      /* Optional: Makes the sample page fill the window. */ 
      html, body { 
       height: 100%; 
       margin: 0; 
       padding: 0; 
      } 
      </style> 
    </head> 
    <body> 
    <script> 
     var map; 
     var bounds = new google.maps.LatLngBounds(); 

     // your POLYGON 
     var polygonStr = "POLYGON (24.935955 42.32732, 24.943297 42.3268, 24.944593 42.322991, 24.94438 42.317172, 24.940584 42.317919, 24.936224 42.320232, 24.933244 42.322896, 24.927394 42.327057, 24.934312 42.328296, 24.93242 42.326795)"; 


     function initialize() { 
      map = new google.maps.Map(
      document.getElementById("map_canvas"), { 
       center: new google.maps.LatLng(42.156801, 24.749468), 
       zoom: 4, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }); 
      drawPoly(polygonStr); 
      map.fitBounds(bounds); 
     } 

     function drawPoly(multipolygonWKT) { 
      var polylines = []; 
      var toReturn = []; 
      multipolygonWKT = multipolygonWKT.replace("POLYGON ", ""); 
      var formattedValues = multipolygonWKT.replace("))", ""); 
      formattedValues = formattedValues.replace("((", ""); 

      var linesCoords = formattedValues.split("), ("); 

      for (i = 0; i < linesCoords.length; i++) { 
       polylines[i] = []; 
       var singleLine = linesCoords[i].split(", "); 

       for (j = 0; j < singleLine.length; j++) { 
        var coordinates = singleLine[j].split(" "); 
        var latlng = new google.maps.LatLng(parseFloat(coordinates[1]), parseFloat(coordinates[0])); 
        bounds.extend(latlng); 

        polylines[i].push(latlng); 

       } 
      } 

      toReturn.push(
       new google.maps.Polygon({ 
        map: map, 
        paths: polylines, 
        strokeColor: 'red', 
        strokeOpacity: 1, 
        strokeWeight: 2, 
        zIndex: 1 
       })); 
       return toReturn; 
      } 

      google.maps.event.addDomListener(window, "load", initialize); 
    </script> 
    </body> 
</html> 

Quand je tente d'appeler le fichier avec un lien hypertexte avec de nouvelles coordonnées rien hapens par exemple « file: /// C: \ Users \ Desktop \ MyfileName.html? q = "POLYGON (ici je mets mes nouvelles coordonnées)" Mon idée est de changer les coordonnées qui sont dans le script avec le nouveau depuis mon hyperlien. Est-ce possible? Si c'est possible comment? Presque oublié de dire que le fichier est sur mon ordinateur et je veux l'ouvrir d'où il est.

EDIT: Voici un peu plus d'informations sur ce que je veux faire.J'ai créé un attribut dans le programme que j'utilise - Geomedia et je peux créer un lien hypertexte avec les coordonnées du polygone dessiné. enter image description here Je veux quand je clique sur le lien pour ouvrir le polygone dans google maps. J'ai essayé de faire le lien hypertexte directement à google, mais je ne pouvais pas trouver comment configurer l'URL. Je veux dire que pour un seul endroit il y a "? Q =", mais je n'ai pas trouvé comment dire à google c'est un polygone, alors je vais de l'avant et je commence à chercher une autre façon. J'ai trouvé le script qui est bien si j'adjette les coordonnées manuellement cela fonctionne, mais je dois le faire fonctionner avec le lien hypertexte donné. Je pense qu'il devrait y avoir un moyen de le faire, mais mes compétences javascript sont très faibles alors s'il vous plaît soyez patient en essayant de me dire comment le faire :).

NOUVELLE ÉDITION: Je suis complètement coincé avec cela et j'ai vraiment besoin d'aide, parce que j'ai essayé beaucoup d'exemples et de fonctions différentes et toujours pas de progrès. Je fais quelque chose de mal et je ne peux pas le faire fonctionner. Probablement je dois abandonner puisque même ici je ne peux pas obtenir une soliution utile. Au moins si quelqu'un peut me donner un lien vers un exemple où je peux voir comment est fait et comment modifier mon dossier ce sera gentil.

Répondre

0

pour acess aux coordonnées dans l'hyperlien, vous devez les extraire, pour exampl vous pouvez utiliser php, vous POLYGONE sera comme ceci:

var polygonStr = <?php print($_GET['q']) ?>; 
+0

Je reçois un jeton d'erreur inattendu –

+0

pourriez-vous me donner l'erreur exacte –

+0

Uncaught SyntaxError: Jeton inattendu? –

0

Si vous voulez ce qui est après le "?", Vous pouvez utiliser

var search = window.location.search 

Alors si vous avez quelque chose comme? "POLYGONE (1.8,2.5)" vous pouvez utiliser

var regexp = /\"POLYGON \(([\d\.]+)\,([\d\.]+)\)\"/gi 
var coords = regexp.exec(search); 

alors, parseFloat (coords [1]) et parseFloat (coords [2]) ont vos coordonates. Utilisez-les où vous avez utilisé pour votre coordonates

+0

Mes compétences sont très faibles alors pouvez-vous me dire où le mettre? –

+0

voir le post –

+0

rien ne hapens et toujours il y a les coordonnées par défaut –