无法点击多边形内的KML图层

艾莉

我的问题有点简单,但是我找不到解决方法。

我正在将AngularJS与Angular Google Maps(https://github.com/angular-ui/angular-google-maps)一起使用

我有一个简单的地图,只有一个多边形和一个KML图层,该图层在多边形内部显示一个标记。

但是我不知道为什么,我无法单击标记。我在地图上放置了两个不同的KML图层,因此您可以看到多边形外部的图层是可单击的,而第二个多边形内部的图层则不可单击。

您可以看到以下代码:

'use strict';
angular.module("map", ['uiGmapgoogle-maps'])

.controller("MapController",['$scope', '$http', function ($scope, $http) {
	$scope.map = {
		center: {
			latitude: 48.80913908755741,
			longitude: 3.0915678394317014
		},
		zoom: 12,
		bounds: {}
	};

	$scope.polygons = [{
		id: 1,
		path: [
			{ latitude: 48.825218, longitude: 3.050508 },
			{ latitude: 48.823409, longitude: 3.101664 },
			{ latitude: 48.792885, longitude: 3.111105 },
			{ latitude: 48.793224, longitude: 3.060465 }
		],
		stroke: {
			color: '#584885',
			weight: 2
		},
		editable: false,
		draggable: false,
		geodesic: false,
		visible: true,
		clickable: false,
		zindex: -1,
		fill: {
			color: '#E6E6E6',
			opacity: 0.6
		}
	}];

	$scope.kmlLayerOptions1 = {
		url: "http://nanakii.fr/up/ligne_bus.kml",
		preserveViewport: true
	};
	$scope.kmlLayerOptions2 = {
		url: "http://nanakii.fr/up/ligne_bus2.kml",
		preserveViewport: true
	};
	$scope.showKml = true;
}]);
* { margin: 0; padding: 0;}

body, html { height:100%; }

.angular-google-map-container  {
    position:absolute;
    width:100%;
    height:100%;
}
<html ng-app="map">

<head>
	<script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
	<script src="http://rawgit.com/angular-ui/angular-google-maps/master/dist/angular-google-maps_dev_mapped.js"></script>
	<script src="//maps.googleapis.com/maps/api/js?libraries=weather,geometry,visualization,places&sensor=false&language=en&v=3.17"></script>
</head>

<body ng-controller="MapController">
	<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options" bounds="map.bounds">
		<ui-gmap-polygon static="true" ng-repeat="p in polygons track by p.id" path="p.path" stroke="p.stroke" visible="p.visible" geodesic="p.geodesic" fill="p.fill" fit="false" editable="p.editable" draggable="p.draggable">
		</ui-gmap-polygon>
		<ui-gmap-layer type="KmlLayer" options="kmlLayerOptions1" show="showKml"></ui-gmap-layer>
		<ui-gmap-layer type="KmlLayer" options="kmlLayerOptions2" show="showKml"></ui-gmap-layer>
		<ui-gmap-marker coords="marker.coords" options="marker.options" idkey="marker.id"></ui-gmap-marker>
    </ui-gmap-google-map>
</body>
</html>

我尝试了许多选择,但没有结果。我在这里发现了一个具有相同问题的老问题,但答案并未解决。如果位于Polygon中,则无法从KML单击点

任何帮助都会很棒!谢谢 !


编辑 :

我也尝试过不使用Angular,因此问题直接来自Google Maps。您可以在多边形外部单击总线,但不能单击内部。

您可以在此处测试代码(代码段无法正常运行):http : //nanakii.fr/dev/test/gmap.php

莫勒博士

您忘记clickable为指令设置-param(演示也未设置clickable-property):

<ui-gmap-polygon clickable="p.clickable" >

'use strict';


angular.module("map", ['uiGmapgoogle-maps'])

.controller("MapController", ['$scope', '$http',
  function($scope, $http) {
    $scope.map = {
      center: {
        latitude: 48.80913908755741,
        longitude: 3.0915678394317014
      },
      zoom: 12,
      bounds: {}
    };

    $scope.polygons = [{
      id: 1,
      clickable: false,
      path: [{
        latitude: 48.825218,
        longitude: 3.050508
      }, {
        latitude: 48.823409,
        longitude: 3.101664
      }, {
        latitude: 48.792885,
        longitude: 3.111105
      }, {
        latitude: 48.793224,
        longitude: 3.060465
      }],
      stroke: {
        color: '#584885',
        weight: 2
      },
      editable: true,
      draggable: false,
      geodesic: false,
      visible: true,

      zindex: -1,
      fill: {
        color: '#E6E6E6',
        opacity: 0.6
      }
    }];

    $scope.kmlLayerOptions1 = {
      url: "http://nanakii.fr/up/ligne_bus.kml",
      preserveViewport: true
    };
    $scope.kmlLayerOptions2 = {
      url: "http://nanakii.fr/up/ligne_bus2.kml",
      preserveViewport: true
    };
    $scope.showKml = true;
  }
]);
* {
  margin: 0;
  padding: 0;
}
body,
html {
  height: 100%;
}
.angular-google-map-container {
  position: absolute;
  width: 100%;
  height: 100%;
}
<script>
  // only for the code-snippet
  document.getElementsByTagName('html')[0].setAttribute('ng-app', 'map')
  document.getElementsByTagName('body')[0].setAttribute('ng-controller', 'MapController')
</script>

<script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="http://rawgit.com/angular-ui/angular-google-maps/master/dist/angular-google-maps.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?libraries=weather,geometry,visualization,places&sensor=false&language=en&v=3.17"></script>


<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options" bounds="map.bounds">
  <ui-gmap-polygon static="true" ng-repeat="p in polygons track by p.id" path="p.path" clickable="p.clickable" stroke="p.stroke" visible="p.visible" geodesic="p.geodesic" fill="p.fill" fit="false" editable="p.editable" draggable="p.draggable">
  </ui-gmap-polygon>
  <ui-gmap-layer type="KmlLayer" options="kmlLayerOptions1" show="showKml"></ui-gmap-layer>
  <ui-gmap-layer type="KmlLayer" options="kmlLayerOptions2" show="showKml"></ui-gmap-layer>
  <ui-gmap-marker coords="marker.coords" options="marker.options" idkey="marker.id"></ui-gmap-marker>
</ui-gmap-google-map>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

渲染的 KML 图层不会填充多边形

来自分类Dev

PostGIS 和坐标,确定点是否在多边形/多多边形 (kml) 内

来自分类Dev

检查坐标是否在KML多边形内

来自分类Dev

检查坐标是否在KML多边形内

来自分类Dev

检查位置(纬度经度)是否在 KML 多边形内

来自分类Dev

传单:如何仅在多边形内显示图层

来自分类Dev

GMap-无法检测到点击多边形

来自分类Dev

传单:检索KML多边形的边界

来自分类Dev

计算多边形的质心 kml

来自分类Dev

UWP 地图图层多边形错误

来自分类Dev

点在多边形内

来自分类Dev

ITextShape可点击的多边形或路径

来自分类Dev

获取在KML中定义的多边形区域的坐标

来自分类Dev

将GeoDataFrame多边形转换为kml文件

来自分类Dev

kml以高缩放级别隐藏多边形

来自分类Dev

动态更改链接的KML文件中多边形的颜色

来自分类Dev

将GeoDataFrame多边形转换为kml文件

来自分类Dev

在 KML 多边形上查找最近的点

来自分类Dev

Phaser:如何在图层中对多边形进行分组?

来自分类Dev

从单个要素图层中选择相交多边形

来自分类Dev

传单将多边形添加到图层

来自分类Dev

Phaser:如何在图层中对多边形进行分组?

来自分类Dev

当一个多边形位于另一个多边形之上时,无法触发点击事件

来自分类Dev

凸多边形内的区域

来自分类Dev

VBO内的OpenGL分隔多边形

来自分类Dev

多边形内的检查点

来自分类Dev

传单内多边形显示的挑战

来自分类Dev

多边形内的KineticJS dragBound

来自分类Dev

VBO内的OpenGL分隔多边形