簡體   English   中英

將Google地圖多邊形保存為Rails記錄

[英]Saving google map polygon as rails record

作為rails 3.2.18,啟用postGIS的應用程序需要從Google Maps API捕獲面數據。

js如下:

  var poly, map;
  var markers = [];
  var path = new google.maps.MVCArray;

  function initialize() {
    var roma = new google.maps.LatLng(41.877, 12.480);

    map = new google.maps.Map(document.getElementById("map"), {
      zoom: 7,
      center: roma,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });


    poly = new google.maps.Polygon({
      strokeWeight: 3,
      fillColor: '#5555FF'
    });
    poly.setMap(map);
    poly.setPaths(new google.maps.MVCArray([path]));

    google.maps.event.addListener(map, 'click', addPoint);
  }

  function addPoint(event) {
    path.insertAt(path.length, event.latLng);

    var marker = new google.maps.Marker({
      position: event.latLng,
      map: map,
      draggable: true
    });
    markers.push(marker);
    marker.setTitle("#" + path.length);

    google.maps.event.addListener(marker, 'click', function() {
      marker.setMap(null);
      for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
      markers.splice(i, 1);
      path.removeAt(i);
      }
    );

    google.maps.event.addListener(marker, 'dragend', function() {
      for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
      path.setAt(i, marker.getPosition());
      }
    );
  }

當地圖生成多邊形時,我想在第一個實例中查看LatLng點(以跟蹤正在生成的內容),但最終要保存這些點。

第一個問題是LatLng(Google)與Lon / Lat(PostGIS)。 盡管總有可能翻轉數據 ,但我只是假設避免使用它。 這將暗示對數據進行某些解析。

那么如何將多邊形點單獨或作為LonLat格式的多邊形捕獲到數據庫中? [記住,我真的不精通js ...]

我可能想向ruby腳本發出AJAX請求,然后將詳細信息保存到數據庫。 您可以像這樣訪問事件中的各個緯度和經度值:

event.latLng.lat()
event.latLng.lng()

或者實際上在返回LatLng對象的任何對象上都使用lat()lng()函數。 查看文檔: https : //developers.google.com/maps/documentation/javascript/reference#LatLng

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM