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!
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 ...
I did a simple comparison a year ago showing eleven different geocoding services, free ones as well as pay services, and the results are in a google spreadsheet. I work at SmartyStreets, so you'll see that listed in the first column but not in first place. I tried to make the comparison unbiased so the results are actually useful. I have now opened the ...
CartoDB is a tool for analyzing, vizualising and sharing your geospatial data in PostGIS. It's an open source geospatial database platform that provides an SQL API layer. It allows developers to make querys to a cloud PostrgreSQL + OpenGIS database optimized to geospatial purposes.
Though I used Leaflet in my webGIS application, OpenLayers has much more advantages over Leaflet. For example if you want to use your application in mobile devices, OpenLayers is a must for the time being.
There are lots of resources related with OpenLayers, however I think developing application with Leaflet is easier than OpenLayers (it is easier to read ...
The ArcSDE APIs date from the earliest days of ArcSDE. It was how you interacted with the data stored in a RDBMS. This was before there were ArcToolbox tools or many ArcObjects classes and methods. Because of this, the ArcSDE APIs have almost no support for geodatabase objects beyond points,lines,polygons--no feature datasets, network datasets, etc.
I compare (with highlights & notes) the code required to do a simple, specific & common task in:
The post is for a presentation I gave on jQuery Geo, which is sadly missing from your list.
I you want to visualize a globe within the browser Cesium is a nice one. (Works without plugin but browser Needs WebGL support)
Can display 3D, 2D and 2.5D view
Support for different raster/vector formats (KML etc.)
Free control the Camera and Camera flights
... and everything within (modern) browsers.
There is a great comparison on the two frameworks in this presentation:
And another article also has a great summary:
Google Maps works so well because some clever people spent time making something incredibly complex appear to be simple.
Switching to a new mapping API isn't going to automatically make your web map nicer to use - some alternative suggestions:
Rather than making a mega-application with every possible layer, make a series of smaller, focussed apps
Find some ...
I am a cartography grad student and a newcomer to web mapping, but I've been working on a project to compare the different technologies out there and put together a basic "how to" guide for getting started with web mapping. My analysis is by no means comprehensive, and I've been trying to get a sense of each library through playing around with them and ...
You can use the Streetdirectory API
"The easiest way to start learning about the SD Maps API is to see a simple example. The following web page displays a map centered on Streetdirectory Singapore Office, 305 Alexandra Road, Vantage Automotive Centre, Singapore 159942: "
Some places like Twitter connect geographical data with the content ("tweets" in this case). If you use the API to request a list of recent tweets, it will give you geographical data along with it ("coordinates", "geo" in the JSON response):
Twitter API Example
I suspect most of the data you're referring to is collected similarly. Basically,
find a ...
By API, I presume you mean some sort of network access to your data through an HTTP POST/GET type affair such as the Google Maps API? Will it be raster or vector data? I'll assume vector for the purposes of this discussion. This is really just a communication protocol rather than an Application Programming Interface.
You won't need to design anything from ...
The advantage of using Geomajas is the strong integration between back-end and client which has ...
You'll have to patch existing software in order to use such a format, but there's nothing wrong with embedding GeoJSON in other JSON formats. JSON is super extensible like this. Every object is its own namespace.
If you look in the other direction, there are some applications, namely Leaflet, http://geojson.io, Fiona's command line programs, that will ...
I spent a while trying to figure this out too.
The button is found in the QgisInterface class.
# Find the layer to edit
layer = qgis.utils.iface.activeLayer()
# Implement the Add Feature button
Then add the features you wish to add to the layer.
A good alternative to the official Scihub is the mirrored Sentinel-2 data on Amazon Web Services.
Sentinel-2 on AWS
This has the advantage of better uptime and the products are already saved in their MGRS tiles, which makes downloading a lot faster.
The data is stored in a public bucket with the scheme tiles/[UTM code]/latitude band/square/[year]/[month]/[...
Speaking purely from a data storage and analysis perspective, the geography type for PostGIS was designed with the antimeridian in mind (among several design goals). There are several functions specifically designed for the geography type.
For instance, consider a LineString across Taveuni, Fiji (mapped with Great Circle Mapper), which straddles the ...
In the comments of the source code you linked there is an explanation:
@param key To access the openstreetmap API you need a valid API key. You can get it for free at https://developer.mapquest.com
For more info also see https://github.com/hrbrmstr/nominatim/issues/5
Overpass API doesn't support GeoJSON. You have to perform the conversion from JSON to GeoJSON yourself.
For converting JSON into GeoJSON see this answer. It even contains a solution in Python. Another Python solution is contained in this answer.
You have a couple of options; the choice of which will depend on your data model, the type of data to be served, the intended usage model, access control as well as the platform of delivery (Web, HTML, Java Server, IIS, static data set).
Extend an existing product to consume your data set. You could look at hosting a GeoServer instance on your (or ...
I was able to do it using geoserver-manager.
The code is:
GeoServerRESTPublisher geoServerRESTPublisher = new GeoServerRESTPublisher("http://localhost:8090/geoserver", "admin", "geoserver");
geoServerRESTPublisher.publishGeoTIFF("myWS", "myTiff", "myTiff",
new File("d:\\work\\myTiff.tif"), "EPSG:900913",
Shapely is one of the Geos Python bindings and has cascaded_union and unary_union implemented since versions 2.16 (GEOSCascadedUnion is deprecated since GEOS version 3.2.+ and GEOSUnaryUnion must be used instead: it can operate on different geometry types, not only polygons as is the case for the older cascaded unions).
Convert QGIS geometries to Shapely ...
As user30184 said, in Python, the process would be creating a memory raster of the same dimensions (layers and layer extension), and executing the CreateCopy after that:
driver = gdal.GetDriverByName( 'MEM' )
driver2 = gdal.GetDriverByName( 'PNG' )
ds = driver.Create( '', 255, 255, 1, gdal.GDT_Int32)
ds2 = driver.CreateCopy('/tmp/out.png', ds, 0)
The current GeoJSON specification is geojson.org/geojson-spec.html and it defines "positions" as
A position is represented by an array of numbers. There must be at
least two elements, and may be more. The order of elements must follow
x, y, z order (easting, northing, altitude for coordinates in a
projected coordinate reference system, or longitude, ...
I received help from an application developer at JNCC. I will post their answer here to help others.
My problem was that I needed to escape the $ character before value. so the wget command should read (using the apihub, which you could replace with dhus):
wget --no-check-certificate --user=username --password=usrpass "https://scihub.copernicus.eu/apihub/...
A WFS is just an API but conveniently one where everyone has agreed a standard way of talking to it beforehand. So rather than having to read a new bunch of documentation and write some new code for every new dataset you would like to add to your client you can pull in a library that has implemented the standard and use that.
As to why you might offer ...