Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps api 3 使用多边形顶点绑定标记google mapv3_Google Maps Api 3_Polygon - Fatal编程技术网

Google maps api 3 使用多边形顶点绑定标记google mapv3

Google maps api 3 使用多边形顶点绑定标记google mapv3,google-maps-api-3,polygon,Google Maps Api 3,Polygon,我正在尝试将标记与多边形顶点绑定。现在我正在分别绘制标记和多边形。您可以在代码中看到。但我希望,在绘制标记时,标记也绑定到多边形顶点 var markers = new Array(); var polycoordinate = Array(); for(var i = 0; i < location.length; i++) {

我正在尝试将标记与多边形顶点绑定。现在我正在分别绘制标记和多边形。您可以在代码中看到。但我希望,在绘制标记时,标记也绑定到多边形顶点

                        var markers = new Array();
                    var polycoordinate = Array();

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

                        marker = new google.maps.Marker({
                            position : new google.maps.LatLng(location[i][0], location[i][1]),
                            draggable : true,
                            map : map
                        });
                        google.maps.event.addListener(marker, "drag", function(event) {
                            console.log(event);
                        });
                        markers.push(marker);
                    }
                    for(var i = 0; i < polocation.length; i++) {

                        polycoordinate.push(new google.maps.LatLng(polocation[i][0], polocation[i][1]));

                    }
                    var flightPath = new google.maps.Polygon({
                        path : polycoordinate,
                        geodesic : true,
                        strokeColor : '#FF0000',
                        strokeOpacity : 1.0,
                        strokeWeight : 2,
                        fillColor : '#FF0000',
                        fillOpacity : 0.0
                    });
                    flightPath.setMap(map);
var markers=new Array();
var polycoordinate=Array();
对于(变量i=0;i
假设一个数组“locations”(location在Chrome中是一个不好的词)带有第一个输入纬度,第二个输入经度。从以下位置借用代码:


假设一个数组“locations”(location在Chrome中是一个不好的词)带有第一个输入纬度,第二个输入经度。从以下位置借用代码:


<script type="text/javascript"> 

var locations = [
  [ -33.890542, 151.274856, 4, 'Bondi Beach'],
  [ -33.923036, 151.259052, 5, 'Coogee Beach'],
  [ -34.028249, 151.157507, 3, 'Cronulla Beach'],
  [ -33.80010128657071, 151.28747820854187, 2, 'Manly Beach'],
  [ -33.950198, 151.259302, 1, 'Maroubra Beach']
];
 
  /*
   * Use bindTo to allow dynamic drag of markers to refresh poly.
   */
  
  function MVCArrayBinder(mvcArray){
    this.array_ = mvcArray;
  }
  MVCArrayBinder.prototype = new google.maps.MVCObject();
  MVCArrayBinder.prototype.get = function(key) {
    if (!isNaN(parseInt(key))){
      return this.array_.getAt(parseInt(key));
    } else {
      this.array_.get(key);
    }
  }
  MVCArrayBinder.prototype.set = function(key, val) {
    if (!isNaN(parseInt(key))){
      this.array_.setAt(parseInt(key), val);
    } else {
      this.array_.set(key, val);
    }
  }
 
  /**
   * Handles click events on a map, and adds a new point to the Polyline.
   * @param {MouseEvent} mouseEvent
   */
  function addLatLng(event) {
    var path = poly.getPath();
    path.push(event.latLng);
    var len = path.getLength();
    var marker = new google.maps.Marker({
      position: event.latLng,
      title: '#' + len,
      map: map,
      draggable : true
    });
    marker.bindTo('position', poly.binder, (len-1).toString());
  }

var poly;
var map;
 
function initialize() {
  var polyOptions = {
      strokeColor: '#000000',
      strokeOpacity: 1.0,
      strokeWeight: 3, map: map
    };
  poly = new google.maps.Polygon(polyOptions);
 
  var bounds = new google.maps.LatLngBounds();
  map = new google.maps.Map(document.getElementById('map_canvas'), {
    center: new google.maps.LatLng(10.9386, -84.888),
    zoom: 10,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });
  var markers = new Array();
  var polycoordinate = Array();
 
  poly.binder = new MVCArrayBinder(poly.getPath());
  for(var i = 0; i < locations.length; i++) {
    var evt = {};
    evt.latLng = new google.maps.LatLng(locations[i][0], locations[i][1]);
    bounds.extend(evt.latLng);
    addLatLng(evt);
  }
 
  poly.setMap(map);
  map.fitBounds(bounds);
} 
 
google.maps.event.addDomListener(window, "load", initialize);