I am not sure whether this forum is appropriate for this question. But, I am dying for this information. The problem is certain parts of Google or Bing Map licenses does not allow me to use their map services/controls.
Is there any commercial map controls (atleast for U.S) similar to Google maps available?
Thanks in advance
There are many mapping solutions available that you can use, but the big problem that you have isn't actually the mapping software, it's the map source data. This is where the licensing actually comes into play because you usually have to source the map data from somewhere, and even Google maps have to purchase this mapping from somewhere - they then pass the cost of the license on to you. If you aren't too worried about 100% coverage, you might want to take a look at the OpenStreetMap project which is an open source project aiming to provide geographic data.
Anyway, if you want free software and you are using .NET, you can always download SharpMap. For an online solution, you could look into DeepEarth.
Alternatively, if you are looking to pay for a commercial solution, you might want to look into ESRI or MapInfo solutions.
ESRI has many products that perform similar functions, on both desktop and server.
I believe mapquest offers commercial licensing of their services & components.
Google Maps does have a commercial version, but it'll cost you.
Related
I am a final year Computer Science undergraduate student from India. I want to create a WPF application that displays 3D buildings like in the latest Google maps 5 for android. This will be the basis of my final year project. I have some questions before i start working on this.
Should I make it desktop or web based, or should I use the web to store some metadata and render the data in the desktop software?
For 3D display of buildings in a map area, is WPF enough or will I need knowledge of XNA and Direct X too?
Will this violate Google Maps TOS if I use Google Maps API? (I want to do something Google Maps does not provide in India) Is using Bing Maps a better option?
Is it feasible to read building elevations and rendering them using the above mentioned Maps APIs? Is it that the elevation data available through Google Maps API is only for the terrain and not for individual buildings?
I have three months to complete this project and have given details of the technologies I intend to work with.
Will I need in-depth knowledge of any more technologies for this?
Excuse me if I missed some detail. I am posting this from my cellphone using opera mobile. It's time we have an android client for stackoverflow.
1) That is entirely up to you. As you don't specify your target user then it is hard to say what the best way to deliver the application is. For example, if you want to be able to widely distribute it and have a high compatibility then perhaps a web-based application would be best. Conversley, if you require high performance and are targeting a specific os, chip-set, etc then a stand-alone application may be better.
2) Again, it is hard to say. WPF can certainly render 3d objects and may provide you with everything you require. If again you require more complex rendering you may also want to look at later versions of Direct3D, which can help a lot with things like HDR textures, Multi-threading, etc.
3) I am not a lawyer so I can't say for sure - even if I If I were it would still depend on the specifics of your implementation. That said, the bing maps section 2 (i) seems pretty good for you - Academic use seems pretty open as long as you make the application available publicly without restriction. The Google TOS seems more restrictive to me at least.
4) To me that would be a breech of the Google Maps/Earth TOS - The section on Restrictions on use seems pretty clear...But again, I am not a lawyer so I can't say for sure...
I want to create an application where users can mark on map location of polluting factories. Google map provides a MAP editor feature. We would like to have our own website like www.toxic-map.org where people could mark these locations. What would be the best approach for this?
Additionally we should be able to backup this database which could be cross checked or used for other purposes.
This will enable us to have little accurate census of such entities and thereby helping us in the fight against these environment harming, illegal factories. Most of our work is focused on developing countries of Asia.
Edited: Google maps is one of the options. I am open to other possible solutions as well. I am looking at something we could do quick prototyping in.
Thank you in advance!!
On the client side, I recommend you to have a look at OpenLayers, a free and open source web mapping framework released under a BSD-style License. It is completely written in Javascript and offers a lot of functionality, including the features that your application may need (Add markers to the map, drag them to adjust the locations, ...).
It also supports dozens of different geographic data formats and services such as WMS, KML or Google Maps.
If you are worried about licensing issues regarding the use of Google Maps, you can use other global data sources like OpenStreetMap or a public WMS if they provide enough coverage of your area of interest.
On the server side, I agree with the answer provided by Daniel Vassallo. I will just add a little detail and recommend you to serve the markers in a standard format natively supported by OpenLayers like KML, GeoJSON or GeoRSS. It will make really easy to draw the markers on the map.
Looks like a really interesting project, I hope you are lucky starting it up.
I seem to remember that there are restrictions to what you can do with the coordinates if you enter them through Google's interface, but if that doesn't bother you then sure, Google might be the way to go. (It may just pertain to geometrical figures entered into Google Earth or something like that.)
Google seems to be in line with your ideology anyway, as they're doing a lot of green power development. Might even be a selling point.
But if you can input the data separately and have Google Maps just display it for you then I wouldn't think they could hold claim to the data.
I think your best bet is to use the Google Maps API instead of the map editor in My Maps.
With some basic JavaScript, you will be able to allow users to drop markers on the polluted locations they would want to tag.
You will need a database on the server-side, and a thin application layer that:
Accepts and validates new markers added by users.
Serves the markers from the database to the browser.
You may want to use AJAX to interact between the browser and the application layer.
I think this type of project would be an excellent candidate to be hosted on the Google App Engine. You will be able to leverage on the simplicity of the webapp framework, and the Google Datastore appears to fit well.
As a side-note, you might be interested in checking out the Heat Map API for Google Maps. I think heat maps would look good in a project like this.
The approach is this:
1. User can drag the marker to the location of toxic factory.
2. A simple form opens to enter details of the toxic factory.
3. The latitude, logitude and other datails are then saved in database.
Please refer www.loppee.com They have a similar solution where user can mark the location of people or places of interest. Loppee uses LeafletJS javascript framework. It is a simple framework. You would be able to develop quick prototype. LeafletJS.com has simple and easy to use code samples.
Additionally, you can enable Geolocation and IP triangulation. Refer: Longitude and latitude value from IP address
I am not familiar with the GIS (or map), but recently I have to do some work related to this field. I know some map providers: OpenStreetMap, CloudMadeMap, OpenCycleMap, OpenAerialMap ...
My questions is: Do those map providers have the same standards? I mean the tile size, zoom levels, scales for each zoom level and so on.
Is there any standard for open GIS? If yes, where can I find them or some one could give me some references or links?
Yes, all the services you mention, along with many others in the open-source GIS mapping world, share the same defacto "z/x/y.png tile standard". The tile numbering, zoom levels, scales and so on are all the same across the these providers.
The "standard" isn't official, but the OCG are formalizing the details under the acronym "TMS", unfortunately in an incompatible way with what is in practice (different origin for the tile numbering. Gah!)
The OpenStreetMap wiki has the best description of the numbering scheme. You can display such tiles in OpenLayers using the XYZ or OSM layers. Note that the projection for all these layers is "Spherical Mercator", aka EPSG:900913 or EPSG:3857.
I run the OpenCycleMap servers, and was the Technical Lead for CloudMade when we chose this scheme. Both were chosen to be identical to OpenStreetMap, which in turn was based on the scheme Google were using at the time.
I am also very new to GIS programming, but it seems GIS is heavily standardized. From the storage layer (WKT, WKB), to the server layer (WMS, WFS, SLD..). Try lookinh those up on wikipedia (I think I can't post this many links with my reputation?).
We started developing using the following open source stack: PostGIS, GeoServer, OpenLayers and so far we are happy with our decision, everything fits together beautifully,
You might be interested in the Open Geospatial Consortium Web Map Service (WMS) standard. It is a standard protocol for serving georeferenced map images over the Internet.
Consumers of web map services can "mash up" lots of different layers from different providers to create their own applications.
There are no exact standards regarding tile sizes, zoom levels and such because these are highly customizable.
There are technical standards regarding file, db and web service formats.
Some file formats of ESRI (i.e. Shapefiles) are de-facto standards, for better and for worse.
Others are open standards from the OGC, but don't expect to see all of these open formats in commercial products (i.e. even the ubiquitous KML format is not 100% supported in ESRI products).
There are two relevant OGC standards with regard to map tiling. The Web Map Tiling Service (WMTS) currently in candidate standard form and a proposed extension to WMS to add a cached/tiled version.
So the short answer is "no", there's no official standard yet.
The three major vendors have standardized on a defacto standard for tiling scheme's. A description of the scheme can be found here, among other places.
From what I know of the map providers you listed, they each have their own scheme... though I don't know for sure. You will likely have to check each individual provider for their tiling scheme. You will also need to make sure that their usage agreements let you use the tiles directly (as opposed to using any API they might provide).
This doesn't really speak to standards, but I thought it worth pointing out that the first three you mentioned, OpenStreetMap, CloudMadeMap, and OpenCycleMap, are all related projects.
OpenStreetMap is the project to collect the open mapping data, OpenCycleMap is an implementation that uses that data to a create a map tailored to Cyclists, and Cloudmade is a for-profit company founded by a number of the people who founded the OpenStreetMap project, and they also use its data.
When I wanted to add OpenStreetMap data to my website, I ended up using a (for now, free) tile serving service offered by Cloudmade. This saved me having to worry about generating tiles or serving them myself. I've had a good experience with it.
I thought of using map in my blog. So which api will suit for me??
I am expecting that map should have more features. I dont know how to use it.. Sorry if my question is silly.
I need docs of both. Please let me know??
Both mapping API's are well documented by the respective parties, just google it and you'll find what you need. The MS Api is a little more restrictive but then the MS maps have better support for bringing up nice looking pop-up boxes etc.
The only real considerations after working with both are design and whether you need https support or not because Google maps will give IE users on https a nasty security dialogue pop-up that won't go away unless you pay Google $10,000 (but being for your blog I wouldn't imagine your fussed about that)
They are both pretty similar. I have used Google Maps API and it is very easy to get up and running and does everything I need. It also has street view which is a nice extra.
You should provide us more details in order to get a better answer but I will give you my thoughts anyway:
I have used the virtual earth API in a project I did in 2007. By that time we decided to go for the MS version as it had a better documentation and would fit better with our technology set i.e. MS SQL, .NET etc .... and best of all: it was for free!
Google at that time was offering a nicer UI for maps and stuff but after a certain number of requests you would start getting charged....
If you are developing in .NET I would certainly go for Virtual Earth now as Microsoft has shipped the official virtual earth sever side control ....
Some links:
http://dev.live.com/Virtualearth/sdk/
http://code.google.com/apis/maps/
Personally I think Virtual Earth is an inferior product compared to Google Maps with Street View. I haven't looked at either API but my experience with using other web based APIs from Google and Microsoft is that Google exposes a lot more functionality. The web is their bread and butter. It's a defensive action from MS. I love MS btw, so this isn't a hater ranting...
Pretty sure that MS Virtual Earth will require your users to download a viewer specific to actually see and interact with the map. The Google API will work directly with the browser. Really it comes down to what sort of functionality are you looking to include? if you just want to display various places on a map then GoogleAPI will work fine for you, if you want to be able to do an exploded view of a location from 3 miles away and then zoom in on it like you would if you approached it in a fast moving plane then MS Earth.
Google Maps API or MS Earth Developers
Simple question, the answer may not be...
I'm going to be developing a web app (ASP.NET MVC) for a client. They have asked me for an opinion on whether to use Google Maps or Virtual Earth for providing a mapping solution.
Which would you go for and why? Or are there others you can recommend?
What else do you need to know?
Street view (or equivalent) won't be
necessary in the near future, but
one day it might.
The client wants to identify certain
mappable features, and beyond that
find these features when within a
specified distance.
What else should I be considering at a high level? Or my client?
Thank you in advance.
One of your major considerations needs to be licensing if this is for a commercial web site. You'll have to contact both Google and Microsoft for exact details and pricing, but there's plenty on the web that indicates it could cost you $10k to implement these solutions in production. They get you hooked on the rapid and easy development though!
My preference is for Google Maps, it just feels a bit slicker but I have developed some pretty good prototypes with the Virtual Earth SDK before.
I don't know if Microsoft are planning an equivalent to the StreetView feature so if that is on the requirements cards in the future then stick with Google.
Either of the technologies will allow you to search for geographic features in various ways - whether via region, street address or specific latitude + longitude. They also allow you to overlay your own images or draw lines, polygons etc.
Google Maps seems to have a wider user base (even though Microsoft were technically doing this stuff before Google got into it!), so you're likely to find more help out on the intarweb when implementing your solution than for Microsoft.
More info on Google Maps for Enterprise is located here:
http://www.google.com/enterprise/maps/map_info.html
You should be asking the client for a reasonably comprehensive list of requirements for the mapping solution. You've mentioned one - these "mappable features". Are there any others?
Once you've got the list you can then see which one provides the best fit and go with that.
If Street View is definitely on the horizon then you have to go with Google - or is it something that's just come up in conversation?
Having said that, for a little bit more effort you could write an abstraction layer that sits between your application and the mapping solution so that if the one you didn't choose provides a better fit in the future it would be easier to make the change. Though this does go against the Agile methodology (YAGNI).