Questions tagged «javascript»

JavaScript是一种基于原型的,面向对象的脚本语言,该语言是动态的,弱类型的并且具有一流的功能。

17
比较各种JavaScript映射库?
我正在开发基于Web的地图系统,并且试图找出要使用的库。 这些是可用库比较的链接: Laurent Jegou的基准测试(从2010年开始)是对Web映射解决方案(客户端和服务器)的全球展望。 可以在这里找到德国Carrillo对FOSS库的比较: 到目前为止的库列表: 谷歌地图 Microsoft虚拟地球 MapQuest 传单 -“注释的更小,更快,更新和更直接也可以理解为更少的功能和更少的测试。” -地理(见下文) ArcGIS API for JavaScript-与ArcGIS Server配合使用效果最佳(请参见下文)。还提供了Google Maps和Bing maps扩展,使您可以将ESRI API与Google / Bing maps一起使用(尽管大多数库都是这样)。 Yahoo Map API的 通过米其林 OpenLayers-广泛的文档和大量功能,以及使用不同地图提供者的能力。 Mapquery -MapQuery已发布,现在有一些有用的文档。它具有将OpenLayers和jQuery结合在一起的非常有价值的目标。如果您特别热衷于OpenLayers + jQuery的想法,或者您想为JavaScript映射库做出贡献,请参与并做出自己的努力。但是,如果您只是想成为最终用户,或者是该领域的新手,那么可能不适合您。 Mapstraction-使事情变得非常简单,尤其是与多个底图提供程序一起使用时。但是,这项工作仍在进行中,功能和文档都缺乏。(例如,“类型为“ FeatureCollection”的GeoJSON对象是要素集合对象。”不是很有用。)看来它仍在积极开发中,但截至2011年4月4日,尚未在Github上提交从一月份开始。 deCarta-具有移动和桌面Javascript-第一个兼容HTML5 / CSS3,第二个具有更多的浏览器兼容性。提供的源代码。商业API的最友好的开发人员条款。您可以在地图上加上商标,并且有几种不同的地图样式。您可以选择NAVTEQ或OSM数据。他们也有几个移动API。-由DeCarta员工TheSteve0编辑 云制造 Polymaps-使来自许多不同来源的栅格和矢量数据的合成非常容易。让您轻松添加自己的颜色,分组和交互。运行速度快,可以很好地管理背景图块加载,并且只有30k的Javascript。潜在的不利之处:它使用SVG,这意味着它不能并且不能在MSIE 7或8中运行。它在所有其他浏览器中都可以正常运行,并且应该在IE9中运行。 跳转 -跳转是一种轻量级的地图库,可以单独运行,也就是说,它不是OpenLayers或GoogleMaps API的包装。当前它正在开发中,但是许多基本功能都可以正常工作。 ModestMaps-来自Mapbox和TileMill的制造商的另一个更小,更快,更新的JS映射库。 绘图者 我现在正在使用OpenLayers。您可以使用它做很多事情,它支持大多数数据类型。但是,这并非对所有事情都是最好的。例如,Leaflet在许多方面看起来都比较平滑,包括图像淡入和其他视觉调整。如果您喜欢jQuery,则可能想看看MapQuery,它类似于jQuery和OpenLayers的组合。

6
使用Leaflet可视化大型数据集
当使用Leaflet可视化大型数据集(具有10,000个点特征的GeoJSON)时,浏览器崩溃或挂起就不足为奇了。来自同一数据集的1000个要素的子样本可以完美地工作。不幸的是,我无法共享数据集供其他人试用。 有没有人有更好的解决方案来可视化如此大的数据集?(最终目标是将其扩展到200万个功能)我什至愿意考虑离线可视化框架,以防基于浏览器的替代品(例如Polymaps或d3.js等)无法使用。 编辑:忘记提及了,用户需要能够按属性过滤数据集。因此,在N个要素中,可能仅需要动态渲染匹配的n <= N个要素。

3
添加/删除Leaflet GeoJSON图层
我正在尝试使用Leaflet API在不同的缩放层上显示不同的GeoJSON层。我可以一次加载并显示所有三个图层(尽管我实际上不希望它们一次全部显示)。我可以加载和显示它们在不同的缩放级别。 我已经设置了代码,以便在1-6缩放级别下,地图将显示一个GeoJSON图层。在7-10级,它将显示另一个,在11+级,将显示第三个。显示它们的作品。我现在要开始工作的是,如果显示了其他人,则将其关闭。从1-6移到7-10可以正常工作(这意味着它可以正确关闭1-6层),但是从7-10到11+不能正常工作(这意味着7-10层仍然存在),我无法确定找出原因(使用相同的代码)。 这是GeoJSON图层的ajax: function getJson(defaultStyle, map, simp, geojsonLayer){ var url = 'file' + simp + '.json'; map.removeLayer(geojsonLayer); geojsonLayer.clearLayers(); $.getJSON(url, function(data){ geojsonLayer = L.geoJson(data, { style: defaultStyle, onEachFeature: onEachFeature }); geojsonLayer.addTo(map); }); } 这是根据缩放比例调用ajax的主要功能。simpCounter最初设置为0。 map.on('zoomend', function(e) { if (map.getZoom() >= 7 && map.getZoom() <= 10) { if (simpCounter == 0 …

8
OpenLayers-调整容器大小后重新绘制地图
在我的Web应用程序中,我希望使用户能够设置地图容器的大小。 稍微扩展容器时,一切工作正常(显然是因为刚好位于边框后面的图块已加载)。但是,当容器显着扩展(在下面的示例中,宽度从300像素扩展到1000像素)时,将留有空白空间。 如何使地图重绘并适应新尺寸? 调用redraw()所有图层均无济于事。放大和缩小都没有。 我在Opera,Chrome和Firefox中使用上述结果对它进行了测试。令人惊讶的是,在IE8中,该问题并未发生,并且地图自动适应。 简化的测试页面: <html> <head> <style> #mapbox { width: 300px; height: 500px; border: 1px solid black; } </style> <script src="http://openlayers.org/api/OpenLayers.js"></script> </head> <body> <div id="mapbox"></div> <input type="button" id="test" value="resize"> <script> var map = new OpenLayers.Map('mapbox'); map.addLayer(new OpenLayers.Layer.OSM()); map.setCenter( new OpenLayers.LonLat(1000000, 7000000), 5); document.getElementById('test').onclick = function() { document.getElementById('mapbox').style.width = …


6
如何在OpenLayers / Leaflet中创建动画群集标记?
由于Openlayers似乎无法比拟的平滑过渡,我想使用Leaflet。我特别需要能够将标记与自定义样式的标记组聚类的功能。 可以在Redfin上找到证明我正在努力实现的最佳示例。 请注意,将鼠标悬停在群集上可提供流畅的动画,并通过单击标记将群集分割成动画效果。当达到单个点不与给定公差重叠的缩放级别时,实际标记将以动画方式拆分到其位置。 我真的很想将类似的效果整合到其中,并希望就最佳方法或您可能知道的其他示例提供一些指导。 注意: Redfin似乎正在使用Flash,我想远离它。在理想的情况下,我想尽可能通过Javascript实现此功能,但认为可能需要通过HTML5 / canvas完成。 也许使用p。-Raphael.js或d3.js 有任何想法吗? 顺便说一句-找到了这个例子,但它似乎特别适用于Google Maps。


1
如何使用单张图层控件添加/删除图例?
我有两个叠加层http://02d0c8c.netsolhost.com/dev/lcb_census_layers3.html,可以使用图层控件打开和关闭它们。我希望每个图层的图例与图层一起打开/关闭。 我是JavaScript新手,还是Leaflet新手。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Lake Champlain Basin Census Data</title> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4.5/leaflet.css" /> <!--[if lte IE 8]> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4.5/leaflet.ie.css" /> <![endif]--> <style> #map { width: 750px; height: 580px; } .info { padding: 6px 8px; font: …


6
存在哪些可嵌入的基于Web的地图?
这篇文章是社区维基。编辑现有答案以改善此职位。它当前不接受新的答案。 我熟悉的一些(无特定顺序): Google地图(http://code.google.com/apis/maps/index.html) 必应地图(http://www.microsoft.com/maps/developers/) 雅虎地图(http://developer.yahoo.com/maps/) MapQuest(http://developer.mapquest.com/) OpenLayers(http://openlayers.org/) WorldWind Java(http://worldwind.arc.nasa.gov/java/) OpenMap(http://www.openmap.org/) 还有其他我想念的吗?

2
传单以错误的顺序渲染TileMill瓷砖
我很困惑,很多搜索都没有帮助。 我处于最终将是具有三个栅格层和三个标记层的地图的第一步(带有在栅格及其关联数据之间切换的控件,以及用于数据的弹出窗口/工具提示),但我不能获取Tilemill瓷砖以正确渲染。(我在QGIS中创建了栅格,然后通过GDAL对栅格进行着色和重新投影,然后将其放入TileMill。) 智慧: 在Chrome中。这是Safari: 这是代码,对我来说似乎是无害的(此时,我已经注释掉了除了磁贴之外的所有内容,所以这就是我所包含的全部内容): <html> <head> <title> - Leaflet demo</title> <script type='text/javascript' src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script> <style type='text/css'> html, body{ width:100%; height: 100%, margin:0; padding:0; } #map{ width:700px; height:600px } img {margin:0px;padding:0px}; </style> <script type='text/javascript'>//<![CDATA[ window.onload=function(){ //one base layer on map var map = new L.Map( "map" ).setView([38.173,-94.384],5); L.tileLayer('http://a.tiles.mapbox.com/v3/mtgmediagroup.beef2013/{z}/{x}/{y}.png', { attribution: 'Dani …

4
正在寻找Google StreetView引擎的开源替代品?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 4个月前关闭。 这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我正在寻找使用Leaflet或OpenLayers创建一个开源javascript应用程序。 有什么方法可以将全景图(类似于Google的StreetView)实现到其中一个或任何其他开放API中吗? 我的全景视图将根据个人照片定制,因此我无需从现有服务中获取全景图像。 我了解可以将Google StreetView集成到非Google应用中,但是有没有可以在不使用任何Google API的情况下为我提供类似功能的功能?

1
传单:如何使用removeLayer?
这让我发疯。请参见《 Leaflet》教程,以向地图添加图层控件: L.Icon.Default.imagePath = "Scripts/images"; var mapUrl = 'http://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png'; var secondMap = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png'; var littleton = L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.'), denver = L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.'), aurora = L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.'), golden = L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.'); var cities = L.layerGroup([littleton, denver, aurora, golden]); var …

2
支持更多客户端功能的OpenLayers替代产品
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我正在考虑系统的不同体系结构,这些体系结构理想地将客户端渲染用于点要素,并且必须是无插件的。我一直在使用针对此问题而开发的应用程序来测试我的笔记本电脑(功能相当强大-四核2.6 ghz cpu,4 gb内存,没有任何其他负载,Firefox 8)在OpenLayers和它明显落后于500,开始挣扎超过1000。随机生成的功能似乎没有任何事件处理程序,并且都使用相同的符号系统。 我预计将在功能不强的平台上显示多达1,000个功能,最多包含10个不同的符号,全部带有单击和鼠标悬停处理程序。 我一直希望获得更好的客户端性能,尤其是在看到此GIS Cloud示例之后 -我知道它的工作方式有所不同(HTML5 canvas与SVG),但是性能上的差异确实惊人。 我的关键问题(如果您愿意的话)是: 生成随机点的应用程序代表您编写/使用的其他OpenLayers应用程序中的性能吗? 是否有一个经过验证且免费的替代Web映射API,该API支持WMS服务(我需要使用),并且具有客户端功能,而无需使用Flash / Silverlight /任何其他插件,速度更快? 关于我应该调查的内容还有其他建议吗? 主要依靠服务器端呈现是一种选择,但是由于担心扩展用户数量和UI的响应性,我和客户端都希望避免这种情况。

5
OpenLayers 3中的Z索引:OL3中的图层排序
是否像旧版本一样,可以在OpenLayers3中更改图层的Z索引? map.setLayerIndex(markers, 99); //set the marker layer to an arbitrarily high layer index 我需要在整个地图中更改图层顺序。所以像这样定义z-index的可能性没有帮助 var geoLayer = new ol.layer.Vector({ source : new ol.source.GeoJSON({ projection : 'EPSG:900913', url : './myGeoJson.json' }), style : function(feature, resolution) { var text = resolution < 5000 ? feature.get('name') : ''; if (!styleCache[text]) { styleCache[text] = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.