我曾经多次使用谷歌地图,但对OpenLayers感到疑惑.
在开始任何编码之前,我想到了几个问题,
我还没有尝试过,那些只是出了问题......
我已经看到了这里提供的如何绘制线条的示例,但示例仅显示了如何使用鼠标进行操作,方法是单击.
我想要做的是在给定经度和纬度坐标列表的情况下使用JavaScript手动绘制线条.
我无法处理上面链接中提供的源的原因是因为他们只调用activate
该功能,然后让用户指向并单击地图.
有没有人以编程方式在OpenLayers地图上绘制路径?
我想要做的就是:http://openspace.ordnancesurvey.co.uk/openspace/example4.html,但不使用OpenSpace.
我正在尝试我所设想的与传单多面体对象相当常见的用例.
我使用geojson创建MultiPolygon:
var layer = L.GeoJSON(g, style_opts);
Run Code Online (Sandbox Code Playgroud)
我想要的是在每个多边形的中心放置一个简单的文本标签.(例如,将州名放在每个州的中心).
我看过:https: //groups.google.com/forum/?fromgroups =#!topic/leaflet-js/sA2HnU5W9Fw
这实际上覆盖了文本,但是当我添加一堆多边形时,它似乎以偏怪的方式将标签偏离中心,而我目前无法追踪问题.
我也看过:https://github.com/jacobtoye/Leaflet.label
但是,当您将鼠标悬停在多边形上时,这似乎只会将标签放在多边形上,并且不会静态地保留在多边形上.
我认为我最好的做法是使用第一个链接,并追踪它为什么会改变位置,但与此同时,如果有人知道一种快速简便的方法在传单上放置多边形,我会非常感激.
另外,如果我对上面的两个链接有任何错误的假设,请随时让我理顺.
首先十分感谢.
我遇到了一些非常奇怪的行为,并且在我测试过的每个浏览器中都是不一致的.
我的布局非常复杂,但主要问题在于:
<div id="drop">
<div id="header"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
#drop
有position:absolute
和z-index:100
#header
有position:fixed; top:60px;
当我开始向下滚动时,Chrome会忽略该position:fixed
规则.如果我从上面删除上述两种样式中的任何一种,#drop
则Chrome开始position:fixed
遵守该规则.
无法让它在Ubuntu Chrome 23.0.1271.97上运行,并在Mac Chrome 25.0.1364.99上看到相同的行为.我的朋友使用Ubuntu Chrome 25.0.1364.68测试版,它可以正常使用.我在firefox上测试过它有点工作(有其他症状)
有没有人听说过这个错误?或者任何人都可以重现它?
我正在使用openlayers map作为另一个div,position:fixed
如果我删除该层或者至少将其更改为display:none
那么这个奇怪的bug就会消失.
注意到在出现此错误时,如果我来回更改缩放级别,则位置会自行调整为正确的行为.对我来说,这表明webkit问题无法在滚动上执行某些内部回调函数.
另一个非常奇怪的事情是,我内部有一些链接,#header
如果我只是点击预期的位置它们工作,即使div没有出现在那里.总的来说,我注意到只有渲染被打破了.如果在任何时候我强制浏览器通过调整窗口大小,或更改缩放,或只是选择全部来重新渲染,那么标题栏会跳转到正确的位置,但不会保持固定.
我想说服一些客户使用MapServer和OpenLayers.请有人建议有吸引力的网站来展示可能性!
客户将对以下方面印象深刻:
MapServer.org已经备份但是demo.mapserver.org现在似乎已经关闭了:(但是从内存中他们的示例没有"哇"因素.OpenLayers示例演示了每个示例只有一两个功能 - 我想要一些东西通过在一个示例中显示所有功能来使客户惊叹.
PS如果您有一些使用其他开源工具的好例子,请务必发布它们.但请注意JavaScript:客户说没有富客户端.
编辑来吧StackOverflow,有人必须有一个使用密度图的例子?? 我现在甚至提供赏金......
你知道如何在OpenLayers中有一个很好的聚类,比如这个谷歌的例子吗?
摘要
我想尽快写一个.png文件,而不用考虑压缩.也就是说,我不太关心文件大小,但我确实关心写入是否尽快发生.
动机
我正在使用客户端的OpenLayers和后端的python/C++创建基于Web的地图应用程序.当用户在地图上移动时,应用程序需要能够快速绘制动态内容.我有基于图块(256x256图块)和单图像("单图块")版本的工作,但在这两种情况下,后端渲染的最慢部分实际上是将图像保存为png文件(无论是否-disk或in-memory).例如,我可以在大约200毫秒内生成某个视图的"原始","tga"或"tiff"版本,但生成.png版本需要更多的时间,因为.png保存需要几乎整整一秒,而实际保存其他格式的时间是100毫秒或更短(即使"原始"文件是.png文件大小的五倍).此文件节省的时间也远远超过将结果图像从服务器传输到客户端的时间.(我的应用程序的一个重要特性是,通常"后端"将与浏览器在同一台机器上运行,因此传输时间可以忽略不计,即使对于大文件也是如此.)
我以为我可以通过调用快速编写.png(在使用C++中的libpng时)
png_set_compression_level( png_ptr, 0 );
Run Code Online (Sandbox Code Playgroud)
在调用任何png_write_...
函数之前.但是,虽然该调用确实似乎阻止了libpng压缩文件(生成的文件大小与.raw文件大小相同),但它并没有使.png的保存速度明显加快.
请帮忙
我需要为这些图像使用.png,因为我需要它们是基本地图顶部的透明叠加层,我需要的不仅仅是GIF提供的256种颜色.OpenLayers只是使用html img标签,所以我的理解是我只能使用有效的img格式.
我认为有一种方法可以通过不进行任何实际压缩来快速编写.png文件(我知道.png是"始终压缩"但我想这可能包括"空压缩").看起来你应该能够编写一个简单的固定标题,然后是未压缩的数据,然后是一些固定的页脚.或者也许是相同的想法,但是以逐行的方式.关键是我可以非常快速地在内存中通过这个2.5 MB的原始数据循环进行各种循环,并且可以非常快速地将其转储到各种文件格式,所以看起来我应该能够将它转储到固定的,未压缩的.png格式也很快.
听起来不错吗?你知道在哪里可以找到代码的例子吗?
我很困惑.我有一点意见:
x= -12669114.702301
y= 5561132.6760608
Run Code Online (Sandbox Code Playgroud)
我通过DrawFeature控制器在矢量图层上绘制了一个正方形.
这些数字似乎......呃...很大,但它们看起来很有效,因为如果我后来绘制一个具有相同点的正方形,它处于相同的位置,所以我认为它们必须是正确的.
问题是当我尝试将此点转换为纬度和经度时.
我正在使用:
map.getLonLatFromPixel(pointToPixel(points[0]));
Run Code Online (Sandbox Code Playgroud)
其中points [0]是几何Point,pointToPixel函数占据任意点并将其转换为像素(因为getLonLatFromPixel需要一个像素).它通过简单地获取点的x,并使其成为像素x,等等来实现这一点.
我得到的纬度和经度是以下顺序:
lat: -54402718463.864
lng: -18771380.353223
Run Code Online (Sandbox Code Playgroud)
这显然是错误的.我真的很困惑.我尝试使用以下方法投影此对象:
.transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
Run Code Online (Sandbox Code Playgroud)
但是我真的没有得到它,而且非常确定我做错了,无论如何.
我的代码在这里:http://pastie.org/909644
我有点不知所措.坐标似乎是一致的,因为我可以重复使用它们来获得相同的结果......但它们似乎比我在openLayers网站上看到的任何示例都要大......
我在我的数据库中有来自用户定义多边形的经度 - 纬度顶点.我的问题是:如何在地图上重新创建并显示它们?使用Google Maps API非常容易,但我找不到任何有关如何使用OpenLayers执行此操作的文档或示例.有没有人有这方面的经验?
我正在使用OpenLayers在网页中显示地图.我正在使用来自CloudMade的磁贴,但OpenStreetMap中的Mapnik磁贴也会出现同样的问题.
我正在尝试限制地图,以便用户无法一直缩放到世界视图 - 我希望它们保持在大致城市级别的缩放至少.
我尝试过使用minZoomLevel
/ maxZoomLevel
/ numZoomLevels
属性; 只有maxZoomLevel
和numZoomLevels
属性似乎有效,而minZoomLevel
属性似乎完全被忽略了.
还有另一种方法来实现这一目标吗?