Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't understand this feeling of self-entitlement - who are we to judge whether or not an API has been offered "in a reasonable manner?" I'm guessing it's very resource-consuming to collect, process, and maintain the data necessary for geolocation APIs (especially given the upstream providers).

It'd be one thing for Google to be deceptive about it, offer a free service, and try to upsell you every point along the way. It's quite another thing for Google to dedicate an entire section in the API intro page [1] about Usage Limits.

Saying that "Google has nobody to blame but itself" is interesting when the blame is usually from developers to Google, not the other way around.

[1] https://developers.google.com/maps/documentation/elevation/



I agree in part with your point, but I think Google has pulled a bit of a bait and switch here. For many years, they were conspicuously open and friendly, as you would expect from a company run by engineers. That got them a lot of geek love, and a big boost to their early adoption efforts. I also think it had the effect of stunting the growth of alternatives. (E.g., Google Reader.)

Now they are running things more in standard large-business style. There's a natural rebound from that as people adjust. I agree the pragmatic thing is to drop the high expectations; I don't think Google is going back. But I can see why people are going to get all Kubler-Ross on Google while they adjust.


By open and friendly you must be talking about small pet projects released by single or small groups of engineers that didn't take much effort to produce.

If you are expecting unlimited free access to some thing like maps which employs many people and probably millions of dollars to produce, without expecting any type of return to sustain further growth...well it's time to rethink your strategy if you plan on staying in business.

Why does HN believe companies that spend millions of dollars to provide services, many times for free, and for pay with restriction are somehow "evil" (since we're talking about google this feels like an appropriate time to use this irrelevant phrase again).


You've missed the point that Google has always been an advertisement company.


I'm aware of that. But they also came out of an academic background, used a lot of open source, published many papers, and built an engineering-focused culture, not a business-focused one.

That is, sadly, changing. But it's not a necessary change.


I would offer that any potential or actual user of the API is an apt judge of whether the API has been offered "in a reasonable manner."

As it currently stands, one has the option of 2,500 requests per day for free or a minimum of $10,000 [1] and a limit of 100,000 requests per day.

Is it unreasonable to wish for at least one option between the two current choices of $0 and >=$10,000? The parent isn't being self-entitled, he or she clearly stated, " ... if you made it easy for single people to pay you to be able to use your data ... [emphasis added]"

[1] "What is the cost of Google Maps API for Business?" - http://www.google.com/enterprise/earthmaps/maps-faq.html


I actually talked to Google yesterday. Minimum tier is 100k per day at $17.5k per year. Very fair price (If you think that is expensive, then you clearly do not work in commercial GIS, where licensing of software and data is insanely expensive). At the same time, they force you to use the data on a Google Map component (yes, even for the paid accounts), and while their api is acceptable, their js map control is severely lacking in features compared to something like leaflet, openlayers, or esri's js component. This may have very well been simply an arbitrary decision, but it has the effect of snuffing out any small companies or start ups that want to use their apis to build new, innovative applications. Considering the big few companies in this space bought up just about all the data companies that originally compiled the underlying data, this seems completely anti-competitive to me. I am not saying they should give it away for free, but there should definitely be some smaller paid plans with more open terms of use, considering that Google and the couple other competitors basically just purchased a cartel together over the last decade.


    their js map control is severely lacking in features compared to something like leaflet, openlayers, or esri's js component. 
I work on the Google Maps API. I'd love to hear more about what features you're missing.


Honestly, I had to take a look at in depth to respond, since it has been a while since I looked at the google api in depth. What I still notice is that Openlayers and the esri allow for a lot more service types. You have KML and GeoRSS, which are fine, but do not seem to support many other of the more common formats out of the box such as Arcserver services,WMS, or WFS (which are probably the 3 most common types in the GIS world). I have seen some workarounds for these, but they seem hacky and slow in the implementations I have seen. I do not have a big problem with KML, but I cannot always change what format a 3rd party serves a map as.

The other thing that appears to be lacking is front end geoprocessing. With esri at least, you can do quite a bit of geometry manipulation out of the box. This can be extremely useful for realtime data visualizations, as starting up a new map service is often a bottleneck with any of the backend platforms. If you can just render the new layer on the client, you save loads of time.

My last issue might just be a lack of understanding, but from what I have seen of the backend offering that google maps enterprise offers, it is missing some major features. For one, the documentation is lacking, and it appears that the entire rest api is marked as experimental. Second, although it allows for some basic hosting and whatnot (easily replicated by a free server like geoserver, which is trivial to set up), it once again does not have any real processing engine, so you have to download all of the data to another server you own anyway to do any real work on the data.

That being said, I really do think it is a great product, and I definitely point people in your direction if they are looking for a quick an easy way to add a map to a site with some basic data. At the same time, I am not sure the enterprise plan really makes much sense, since the results can be so easily replicated with geoserver + openlayers and you already need a server solution anyway for running a processing engine like grass or pyqgis.

Also note: I am probably not your typical use case, and I realize that most people just need to throw preprocessed layers on a static map. All I can say is that I look forward to the day when I do not feel like I am the only one around doing dynamic big data GIS on the web, so I don't have to keep building all of this stuff from scratch ;)


I also want to mention that I retract the part about leaflet. I think you guys have wayyy more features than them, but they are the new kids on the block so we can cut them some slack. Also, their controls are the best designed for aesthetics and usability IMHO, which is no small matter.


So why was it outside the ToC to take the five snapshots for the Crime Doesn't Climb gif?


I do not know if the Crime Doesn't Climb usage was against the ToS.

They could have possibly made all their requests within the rate limit imposed by Google. I'm unsure, however, if their usage of the data was allowed: "The Elevation API may only be used in conjunction with displaying results on a Google map; using elevation data without displaying a map for which elevation data was requested is prohibited." [1]

That said, I certainly think it's reasonable to want Google to allow paid access to their API at a rate between their current free offering and their prohibitively expensive offering for personal and small business usage.

[1] https://developers.google.com/maps/documentation/elevation/#...


Building your own elevation API is absolutely trivial; I don't know why anyone would even want to pirate Google's API for large-scale usage.

Firstly, the data is freely available. It's NASA's SRTM [1], downloadable from a zillion mirror sites.

Then just take some code to calculate a lat/long offset and find the right position in the right tile. Bob Osola has some easily portable PHP for this if you need it [2].

Free hint: Putting both your tiles and your (Lua) lookup code in Redis, then calling the latter with EVALSHA, is a really neat and fast way to do this.

If you really need ocean depths, higher resolutions than SRTM offers, or stuff above 60 degrees latitude, then it gets a little more complex. But for 90% of cases doing it yourself is eminently practicable.

[1] http://www2.jpl.nasa.gov/srtm/ [2] http://www.osola.org.uk/elevations/


Building a robust elevation api is definitely not trivial for the average dev using the google api. If someone thought the only way to get elevations was through google then they definitely will not know how to find and compile the data, then write the TIN (triangulated irregular network) algos necessary to appropriately estimate the elevation of an arbitrary point. No, it is not that hard, since tools like Grass can do a lot of the TINing stuff for you, but just running Grass, much less scripting it, is not trivial for someone unfamiliar with GIS. Making this stuff stable and performant on a server (as opposed to a one off calculation on a dataset) is also not trivial in the least.


Worrying about TIN is the 10% case. Simple interpolation within SRTM raster tiles is all that's needed for 90% of cases (IMHO, obviously).


I would not think interpolation would be that much easier than a creating a TIN. I have not looked at the dataset though, so it might be "pre-interpolated" (probably using a TIN if I had to guess), in which case this would be pretty easy with something like pyqgis on a flask server or whatever. The entire api could basically just be:

    @app.route("/elevation")
    def elevation():
      fileName = "/path/to/raster/srtmRaster.tif"
      fileInfo = QFileInfo(fileName)
      baseName = fileInfo.baseName()
      srtmRaster = QgsRasterLayer(fileName, baseName)
      res, ident = srtmRaster.identify(QgsPoint(request.form['lat'], request.form['lon']))
      return ident[0]
I can test this out and throw it on github with some polish if anyone is interested.


interesting. I think of these data are freely available, then there ought to be more people using it and making competing versions so that google will not have a monopoly on provision of such data apis.


Don't wait for "other people;" if you think it should be done, I'd encourage you to do it yourself!


How do you know it is just SRTM?


Sorry, should have made myself clearer. I'm not saying that Google just uses SRTM - I'm sure they throw lots of other sources and general Google Magick in there. But for most people in most places, SRTM is good enough.


np and cheers!

Yeah, I think so too. And querying SRTM tiles is prerry simple.


It's not really entitlement. It's part of market forces. People say good things about products that are sold well, and bad things about products that are sold badly. Negative terms create negative buzz and drive people away. This is how it's supposed to work. And 'negative terms' is up to the market to decide. Obviously some people are unreasonable, but they're usually outliers.


There are many problems with the ownership of data, entitlement, etc.

I've argued with the founder of delicious endlessly about the API limits they imposed which ultimately meant that nothing interesting could be done on the outside with delicious. Nothing interesting ever happened on the inside and ultimately it got sold to Yahoo! and destroyed. I guess the founder got some cash, but the data that was contributed by the end users was destroyed.

Nobody asked them for permission to sell to a psychotic company, have the site destroyed, etc.

Towards the end spammers found that they could (within the API terms) get endless amounts of legitimate 'cover traffic' to cover their links.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: