【发布时间】:2017-04-03 05:56:45
【问题描述】:
正如标题所说,我在使用高缩放级别的多边形编辑时遇到了一点问题。
我正在使用 Google 地图 API 创建一个带有洞的多边形。这使我可以在地图上“突出显示”一个区域。在我的应用程序中,用户可以修改该多边形,使其完美匹配其区域。
该版本一切正常,但在 2 个最高缩放级别,版本“点”消失了。如果您真的想在绘制区域时精确,这会使编辑有点困难。
我是否缺少一些参数来使版本“点”出现在每个缩放级别?
我在这里有一个工作 jsfiddle:https://jsfiddle.net/nrtvewgh/1/
代码如下:
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 50.383074874246, lng: 5.1561069488525},
zoom: 12,
mapTypeId: 'satellite'
});
var WORLD_COORDS = [
new google.maps.LatLng(-85.1054596961173, -180),
new google.maps.LatLng(85.1054596961173, -180),
new google.maps.LatLng(85.1054596961173, 180),
new google.maps.LatLng(-85.1054596961173, 180),
new google.maps.LatLng(-85.1054596961173, 0)
];
var zoneCoords = [
new google.maps.LatLng(50.414233409894, 5.1438760757446),
new google.maps.LatLng(50.408462829958, 5.1216888427734),
new google.maps.LatLng(50.383074874246, 5.1561069488525),
new google.maps.LatLng(50.408435479564, 5.164647102356),
new google.maps.LatLng(50.413348040727, 5.151150226593)
];
console.log(zoneCoords);
var domainZone = new google.maps.Polygon({
paths: [WORLD_COORDS, zoneCoords],
strokeColor: '#FFFFFF',
strokeOpacity: 0.9,
strokeWeight: 4,
fillColor: '#FFFFFF',
fillOpacity: 0.2,
zIndex: 0
});
domainZone.setMap(map);
domainZone.setEditable(true);
只需放大区域边缘的“点”,它们最终会消失。
我注意到我仍然可以在最后 2 个缩放级别拖动区域的边缘,但这根本不直观。
我一直在寻找答案,但似乎找不到有同样问题的人。
非常感谢您的帮助。
【问题讨论】:
-
我尝试了您的 Fiddle,它确实显示了您所说的行为 - 但仅在 Chrome 56 中。我尝试了 Firefox 52.0.2 和 IE 11,它们显示了所有缩放级别的点。这是在 Windows 7 上。
-
确实,这在 IE 11 中不会发生(可能也不会在 Firefox 上发生,尚未测试过)。然而,我昨天和我的客户开会,他在他的 Mac 书(iOS)上向我展示了 Chrome 上的行为。我的天,事情变得更糟了!地图控件(放大,缩小,...)会根据缩放级别随机消失,当这种情况发生时,他甚至会失去他的应用程序会话(我什至不知道这怎么可能)。他一点也不开心,我能理解。我目前正在研究一种肮脏的解决方法,以使事情尽可能快地工作。感谢您的来信!
标签: javascript google-maps-api-3