Code Monkey home page Code Monkey logo

Comments (16)

erikng avatar erikng commented on May 28, 2024

Sneaky devil! Or is it 2,500?

from pinpoint.

clburlison avatar clburlison commented on May 28, 2024

https://github.com/clburlison/pinpoint/wiki#google-geocoding-api :P

from pinpoint.

erikng avatar erikng commented on May 28, 2024

2,500 it is then!

Sent from my iPhone

On Mar 8, 2016, at 6:18 PM, Clayton Burlison [email protected] wrote:

https://github.com/clburlison/pinpoint/wiki#google-geocoding-api :P


Reply to this email directly or view it on GitHub.

from pinpoint.

clburlison avatar clburlison commented on May 28, 2024

On more thinking...this seems redundant to another feature that was included with #4.

See commit 6d23be5#diff-9cee2e349b1920be4296162259506b00R131 the check_wait_period() function.

With that change by default pinpoint will only run once every ~30min. So it should only run 48 times which is way under the limit.

No issue writing more code, but does it solve anything?

from pinpoint.

erikng avatar erikng commented on May 28, 2024

Let's say 50 for easy math. Wouldn't that be limited to 50 machines per day?

Sent from my iPhone

On Mar 8, 2016, at 6:27 PM, Clayton Burlison [email protected] wrote:

On more thinking...this seems redundant to another feature that was included with #4.

See commit 6d23be5#diff-9cee2e349b1920be4296162259506b00R131 the check_wait_period() function.

Which that change by default pinpoint will only run once ever ~30min. With that it should only run 48 times per day which is way under the limit.

No issue writing more code, but does it solve anything?


Reply to this email directly or view it on GitHub.

from pinpoint.

clburlison avatar clburlison commented on May 28, 2024

Wouldn't that be limited to 50 machines per day?

Yes.

Your actual request is checking with Google to see if you are about to go over the limit. I'm not actual sure if that is do-able. This isn't exposed when you are using the free service, it might be doable if we included an optional API key. This entire request not even be worth my time... due to issue #2

Apple seems to not have a hard limit and if so it isn't publicly posted anywhere. Seeing as how we are already limiting this with the check_wait_period() function I doubt even a large fleet would hit that (hypothetical) limit.

As far as I'm concerned this type of request is the same as a lookup from the Maps.app so there very well might not be a limit if I can do this with the Geocoder from CoreLocation.

from pinpoint.

erikng avatar erikng commented on May 28, 2024

I agree with your thoughts. If Apple's API is less restrictive, your time is much better suited working on that.

I will send you some other thoughts in a PM.

Sent from my iPhone

On Mar 8, 2016, at 7:12 PM, Clayton Burlison [email protected] wrote:

Wouldn't that be limited to 50 machines per day?

Yes.

Your actual request is checking with Google to see if you are about to go over the limit. I'm not actual sure if that is do-able. This isn't exposed when you are using the free service, it might be doable if we included an optional API key. This entire request not even be worth my time... due to issue #2

Apple seems to not have a hard limit and if so it isn't publicly posted anywhere. Seeing as how we are already limiting this with the check_wait_period() function I doubt even a large fleet would hit that (hypothetical) limit.

As far as I'm concerned this type of request is the same as a lookup from the Maps.app so there very well might not be a limit if I can do this with the Geocoder from CoreLocation.


Reply to this email directly or view it on GitHub.

from pinpoint.

flammable avatar flammable commented on May 28, 2024

Hey Clayton!

Thanks again for this! My concern is similar to Erik's - if I have a fleet of 715 Macs (and growing), should I hold off from deploying this to every machine? The impression that I get is that each Mac does its own lookups, so the 2,500 limit is per-machine - not 2,500 requests for my lone MunkiReport server.

Assuming the API limit is per-machine...each Mac on our network has a unique IP address, so unless Google decides to ban our entire IP block, I think we're okay. Admins that use NAT might need to be more careful.

I'm really excited to use this, but want to make sure I don't upset Google. :)

Mike

from pinpoint.

erikng avatar erikng commented on May 28, 2024

https://developers.google.com/maps/articles/geocodestrat#client

Is it possible to send the geolocation data only and then render it during the MR-PHP page view? We would lose the ability to see all the pins everywhere, but that would significantly reduce the hits per day.

On Mar 8, 2016, at 7:24 PM, Mike Solin [email protected] wrote:

Hey Clayton!

Thanks again for this! My concern is similar to Erik's - if I have a fleet of 715 Macs (and growing), should I hold off from deploying this to every machine? The impression that I get is that each Mac does its own lookups, so the 2,500 limit is per-machine - not 2,500 requests for my lone MunkiReport server.

Assuming the API limit is per-machine...each Mac on our network has a unique IP address, so unless Google decides to ban our entire IP block, I think we're okay. Admins that use NAT might need to be more careful.

I'm really excited to use this, but want to make sure I don't upset Google. :)

Mike


Reply to this email directly or view it on GitHub.

from pinpoint.

clburlison avatar clburlison commented on May 28, 2024

Still in class so I'll update fully later however in case it isn't obvious - I'm doing a call out to Google for one thing...Reverse geocoding to resolve 37.332112,-122.0329646 to Infinite Loop, Cupertino, CA 95014.

This can be disabled with the AddressLookup key https://github.com/clburlison/pinpoint/wiki/Preferences#supported-keys.

Munkireport will still fully function with the AddressLookup disabled. MR does the drawing of the maps, and placement of the pins based of the geo-cords.

from pinpoint.

erikng avatar erikng commented on May 28, 2024

May have found a EULA issue.

https://www.google.com/work/mapsearth/products/mapsapi.html

The Google Maps APIs Standard Plan allows you to pay for uplifts above free usage limits for individual Maps APIs. The Standard Plan can be used for free, external, and publicly available implementations. Your service must be freely and publicly accessible to end users.

Sent from my iPhone

On Mar 8, 2016, at 7:49 PM, Clayton Burlison [email protected] wrote:

Still in class so I'll update fully later however in case it isn't obvious - I'm doing a call out to Google for one thing...Reverse geocoding to resolve 37.332112,-122.0329646 to Infinite Loop, Cupertino, CA 95014.

This can be disabled with the AddressLookup key https://github.com/clburlison/pinpoint/wiki/Preferences#supported-keys.

Munkireport will still fully function with the AddressLookup disabled. MR does the drawing of the maps, and placement of the pins based of the geo-cords.


Reply to this email directly or view it on GitHub.

from pinpoint.

flammable avatar flammable commented on May 28, 2024

Oh cool. So, if I disable AddressLookup, none of the clients will contact Google at all?

That'd be a decent workaround for the API limit.

from pinpoint.

erikng avatar erikng commented on May 28, 2024

Interestingly enough, this API limit is 100,000 per day.

from pinpoint.

clburlison avatar clburlison commented on May 28, 2024

@flammable

  1. Yes, I would recommend disabling the AddressLookup if you're concerned about the API limit. Honestly the docs on Google's APIs are spread out and confusing. The "Maps" API alone has at least 10 different doc locations.
  2. As for how the service is counting 2,500 requests is also up for debate. I can't find a clear answer on any of those docs. My assumption is that it is based off your external IP address. I'd prefer to not blacklist my home address as a test. 😀
  3. If your goal is to help show Machine X is in building C this should be perfect. From my tests, CoreLocation is able to obtain a location accurate enough to determine the building I am in. (pic below)

@erikng

  1. Your EULA reference above is for a different section of the Map API. That deals with usage of maps/earth inside of websites/apps. I believe this to be the reference you want: https://developers.google.com/maps/terms#10-license-restrictions

    Is it possible to send the geolocation data only and then render it during the MR-PHP page view? We would lose the ability to see all the pins everywhere, but that would significantly reduce the hits per day.

  2. Yes, that's already how MunkiReport works, disable the reverse lookup with the AddressLookup key.

As far as I can tell this project and the implementation within MR are fully within the guidelines of Google's API usage terms. Even with MR being password protected a section of the term allows for this. If we were using MR as a third party and selling as a service provider, like Sal+, then we would have to use a paid API account. Even that might still not be under the terms.


Lastly, for reference when you do disable the AddressLookup key this is the end result in MR.

mr_global
mr_single

If you wanted to do a reverse lookup at this point you can simply copy/paste the coordinates from the MR listing into Google Maps to obtain an estimate.

from pinpoint.

flammable avatar flammable commented on May 28, 2024

@clburlison That is perfect. Thank you so much!

from pinpoint.

clburlison avatar clburlison commented on May 28, 2024

This was an impossible goal (due to the technology). However, it does bring up some good conversations about using Google's geocoding service. Since Apple's GeoCoder has been implemented in #2 I'm closing this.

from pinpoint.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.