Tag Info

Hot answers tagged

34

I have seen this technique used in the past. It was explained to me by Zain Memon (from Trulia) who helped giving some input when Michal Migurski was creating TileStache. Zain went over it while explaining his Trulia demo that uses this technique at one of our older SF GeoMeetup meetings some time back. In fact, if you are in SF next week (this is my lame ...


20

I have used both OpenLayers and Leaflet in my apps. There has been so much discussion on this topic in this forum and others on planet-internet. They usually fall into 2 camps - features and flexibility of OpenLayers versus simplicity of Leaflet. I would not be surprised if someone spawns an "OpenLeaf" initiative soon marrying the best of both worlds! I ...


17

Direct from the developer Dino Ravnic on a recent mailing list post: It's not a big secret how we did it so I would be happy to share that with you..the key is in two things: removing from a tile all vectors which are to small to be visible i.e. their area when calculated into pixels is less than 1px. so we drop such a vector and instead ...


15

If you want a clusterer like redfin then check out my Leaflet.markercluster: http://danzel.github.com/Leaflet.markercluster/example/marker-clustering-realworld.388.html https://github.com/danzel/Leaflet.markercluster It is fully animated etc etc :)


13

As I described on the OSGeo list the key is in delivering data as vector JSON tiles that have pixels for subpixel geometry and generalized geometry for those features that will be actually visible on a certain level. Performance is great because this technique eliminates all unnecessary vector information and leave only those vectors that will actually have ...


12

Looks like a very similar question was recently asked on the OSGeo Open Layers forum, with the GIS Cloud developers describing their approach, which is a interesting mix of GeoJSON geometries and static pixels. They actually generate all vector tiles on the fly instead of using a pre-built cache of GeoJSON files. Esri has implemented a similar approach, ...


10

As you go deeper and deeper into the world of GIS, you'll realize that a lot of work has been already been done to solve common problems. You have your geographic data in your database. How do you arrange the various layers and render them, and add various map elements to produce a Map that you can print? You need a desktop GIS apllication. You could use ...


9

Firstly, it is possible to add your own data on top of Google Maps, using Google Maps API. For example, this and this page show two different ways of adding a WMS service on to of Google Maps. You can easily add vectors as overlays. OpenLayers has many advantages as compared to Google Maps API, including: It is completely Open Source and standard ...


8

What you want to do, is usually called a 'Swipe' tool. There is no inbuilt tool or control for this in OpenLayers, but thankfully, there is an example here: Swipe Control with Google and OSM based on a custom class. You just need to include this JavaScript file in your application. Most Swipe Tools/controls that I have seen online, are based on the ...


8

Mango does it with Leaflet. Check out an example here. Of course you could just save the time to code it yourself and just create the map for free using Mango.


7

Google Maps Google Maps forbids such uses. The only allowed access to their content is through their Maps API (see section 10.1 of the ToS). Bing Maps Web Services Bing Maps is the only commercial provider I know that allows such uses, through their Web Services feature. You will need an API key, though. Bing will be a bit annoying to get, since they use ...


7

You need to break the polyline at the +-180 degree meridian. This requires finding the latitude at which the polyline crosses that meridian. Your GIS probably has methods to do the breaking. If not, a simple solution can be derived from code shown in a related thread. Here are some details. A polyline is represented as a sequence of vertices, each ...


7

OGR: ogr2ogr -f GeoJSON test.json "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Hydrography/Watershed173811/FeatureServer/0/query?where=objectid+%3D+objectid&outfields=*&f=json" OGRGeoJSON That command will read the query result directly from the URL. You can also supply it with a text file containing your JSON or you can directly ...


7

You can try using middleware such as Geoserver which can generate heatmaps for you: http://docs.geoserver.org/stable/en/user/styling/sld-extensions/rendering-transform.html#heatmap-generation


6

I had a play with OpenLayers using Canvas and got reasonable results. As mentioned in the other answers: to deliver and show vectors in the fly - they need to be generalised for each zoom level and each dataset. Also, you can use Google polyline encoding to cut the size down considerably. I used a simple delivery mechanism. Each geometry was a JavaScript ...


6

The OpenView Project is an open source panoramic open source project. Interactive panoramas of people instead of asphalt. openviewproject.org (dead expired link) (looks like the project has slowed down.) But you can use Streetview/Photosynth API's with your own panoramas which is a possible (but not open source route) Mapjack is probably the best ...


6

Before going down any more laborious paths, the simplest option is to reduce the geometry. What are your source datasets? How did you simplify them? How much did this reduce the geojson file size? If you are confident that you have done all you can on the above, then the lowest hanging fruit of your options is Serve the geojson file gzipped, ...


6

What you want to do (Convert address to a position) is called Geocoding. To get a a location for your address, you need a Geocoder. Your Options are rather limited when you are working in the FOSS world. You main options are Nominatim & MapQuest's Open Geocoding Service if you were working with Google's Map API, you could have used their Geocoder. ...


5

You can use PermaLink Here's an Example


5

I do not know exactly which solution is used by this company (you could maybe ask them directly) but I have an idea. The key solution to improve the network transfer and rendering speed of vector data is to generalise them according to the zoom level: Transferring and rendering at a high zoom level thousand of objects designed for a much lower zoom level is ...


5

A map server works for serving your maps to use them in your application. You dont have to use any map server. For serving maps I have been using nginx server as my folders scheme look like TMS scheme. Serving on nginx, I only use it as image, no processing or anything with them...but all application you have listed has different features. The important ...


5

As the Leaflet documentation states, Marker#bindPopup takes an HTML string as first parameter. If you want your lines to appear on different lines, you need to add the proper HTML markup. In your case, a definition list seems the most relevant. Hence: var list = "<dl><dt>Student</dt>" + "<dd>" + title + "</dd>" ...


5

You can create three different icon-objects, outside loop, using L.Icon. E.g: iconA, iconB and iconC. Then, inside loop, switch icon according to univ-category. var myIcon; switch(univ) { case "cat1": myIcon = iconA; break; case "cat2": myIcon = iconB; break; case "cat3": myIcon = iconC; break; default: myIcon = iconX; } //Then create ...


5

Leaflet all the way. I feel like Leaflet is the next step on the evolution of the open source tile based browser clients. Ka-Map -> OpenLayers -> Leaflet. Leaflet is simple to use and does exactly what it says on the tin. OpenLayers has become bloated by trying to to be all things to all people, Leaflet does the 20% of things that are required 80% of the ...


5

You should never display millions of points on a map. Not only because of the major performance problems, but also from a user's perspective because for them it most certainly will be difficult to interpret this data. Use some means of aggregating the data (clustering, aggregating to polygon areas etc.) combined with different display types at different zoom ...


5

I wouldn't call it a bug, just a matter of confusing and contradictory standards. When talking about geographic locations, we usually use Lat-long. This has been codified in the ISO 6709 standard. When dealing with Cartesian coordinate geometry, we generally use X-Y. Many GIS systems, work with a Geographic Location as a special case of a 2 D coordinate ...


4

ESRI JSON to GeoJSON (for OpenLayers) *Likely to be modified for Leaflet javascript //create esri JSON object var myReturn = "esriObj = "+xmlHttpGet(restCall, false); eval(myReturn); I can now work with esriObj as a JSON object i.e. esriObj.geometryType. What happens in the xmlHttpGet method? Basically I create a XMLHttpRequest and pass in ...


4

OpenLayers has also a cluster strategy. All you need to do is to specify as strategy in the vector layer. The solution is very "simple" for the moment, simply reduces the number of points depending on the zoom level. If you need something more awesome you will need to program it by yourself and your needs. Take a look also to SelectFeature control which ...


4

OSM2GEO - A JS Converter to convert OSM to GeoJSON * OSM2GEO - OSM to GeoJSON converter * OSM to GeoJSON converter takes in a .osm XML file as input and produces * corresponding GeoJSON object. * * AUTHOR: P.Arunmozhi <> * DATE : 26 / Nov / 2011 * LICENSE : WTFPL - Do What The F##% You Want To Public License * LICENSE URL: http://sam.zoy.org/wtfpl/ * ...


4

Have you looked into the leaflet clusterer? A blog post by the author describes it here Another option worth a look may be to use leaflet in combination with GIS Cloud. Take a look at this demo to see it handle a lot of geometries very quickly. Very impressive. I am in no way affiliated with GISCloud.



Only top voted, non community-wiki answers of a minimum length are eligible