Google maps 将google地图多边形保存为rails记录

Google maps 将google地图多边形保存为rails记录,google-maps,google-maps-api-3,ruby-on-rails-3.2,postgis,Google Maps,Google Maps Api 3,Ruby On Rails 3.2,Postgis,由于rails 3.2.18支持postGIS,应用程序需要从google maps API捕获多边形数据 调查结果如下: 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

由于rails 3.2.18支持postGIS,应用程序需要从google maps API捕获多边形数据

调查结果如下:

  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 vs Lon/Lat PostGIS。在那里的时候,我只是想避免它。这将意味着对数据进行一些解析


那么,如何将多边形点单独或作为LonLat格式的多边形捕捉到数据库中呢?[请记住,我真的不精通js…]

我可能希望向ruby脚本发出AJAX请求,然后将详细信息保存到DB中。您可以从事件中访问各个纬度和经度值,如下所示:

event.latLng.lat()
event.latLng.lng()
或者对任何返回LatLng对象的对象使用lat和lng函数。见文件: