I am attempting to create an application that will allow a small group of users to subscribe" to a KML feed we produce. The users want to view the KML using Google Earth on their mobile devices which does not support "network links" (please add this...).
The KML contains several hundred different place marks with related information as wells about 30-40 polygons. I am using the HTTP protocol. So far, I can successfully perform the ClientLogin and get the authorization token, I can retrieve a list of user maps and find the one I am supposed to update. Now I'm stuck. Every single feature needs to be updated every time...I don't want to have to manually update every feature or delete each one and re-add. What I would really like is to just provide a KML document and tell it to just
replace ALL content in this map with this KML.....is this possible?
Summary:
Login, then...
Find a map with a specific name, then...
Replace that maps content with a KML file
I thought of just deleting the map and creating a new one with the
same name, but that might mess up the UI of the mobile device and
force the user to have to re-select the map every time I update them (every day). This is not completely out of the question, but it's certainly not ideal.
What is the best way to handle this?
Good question. I don't think the HTTP protocol allows for this in the way you suggested (login, find map, replace entire map with KML).
The delete and recreate method that you suggested in your comment might work, but you'll have to wait until issue 2590 is fixed to resolve the 400 BAD REQUEST problem. The workaround that Google suggest for this issue is to upload individual KML features as required, which really won't help you as that's exactly what you're trying to avoid!
See my answer on this similar question for more details.
Related
I would like to create a Map by the excel sheet values (.csv files too).
By using FusionTableLayer API, I think it is possible. At first step we could upload the excel values to the database. Then we create a map by the database annotated value. It is very good idea. This is what I wanted. But One thing is problem to me with FusionTableLayer API is google's Drive has been pointed for the fusion table. It means that all my business data will be shared with google. I don't want to be like that.
Instead of Google's drive My database has to be pointed out. From my database I would like to create a map with FusionTableLayer API. I have been searching through internet, I dont find this is possible. But I believe that it is possible. Please guile me to specify the way to trigger it out ?
Regards,
ArunRaj.
If you want to use your own database, then you cannot use the Fusion Table API as it's meant for the Google Infrastructure. You will have to find another API to take care of this.
One workaround I can suggest to you is to parse points you have as drawing objects for your map. So for each point, create new google.maps.Marker with the respective coordinates. Each region can be denoted with google.maps.Polygon, and lines with google.maps.Polyline. There's plenty more you can do, but it's just a bit more work, and possibly less secure depending on your implementation. Furthermore, you can also add info windows to each of those areas using the Google Maps API by attaching respective listeners to those objects created.
Hope this helps!
I am looking to find out if Google Places Autocomplete should return results including my submitted places.
I have submitted a place to the Place Report endpoint, and got an
id and ref back.
I then want my users to be able to select that
place from an autocomplete box - along with all the other results.
I have added the browser API key to the Javascript src.
Is this how it's designed to work, 'cos it's not working like that at the moment - or am I being impatient / doing something wrong.
I have verified my Place has been added by calling up the details using the reference it returned when I added it...
Your Place Reports are supposed to be available immediately to your application, but they must pass through a Google moderation process before they become generally available to all users. From the User Place Reports section of the Google Places API Docs:
Place Report requests are used to add new Places, or delete existing
ones. New Places will be available immediately in Place Searches
initiated by your application, and will enter the moderation queue to
be considered for Google Maps. A newly-added Place will not be
available to other applications until it has been approved by the
moderation process.
It isn't clear from your question exactly how you performed your Place Report, so I assumed you had used the Google Places API.
Some additional info, based on your comment:
It makes sense that you can see the place you have added using the Places API, but that it doesn't appear when using Autocomplete. The Places API is designed to be very thorough (and of course, the new place was added by your application), while the Autocomplete is focused on being high-speed, low-latency, and is based almost entirely on how Google rates the prominence of nearby places. Assuming the newly added place has not yet had many clicks, ratings, etc. on maps.google.com, it makes sense that it will not yet rate very highly in prominence.
There is some very good information about the differences between the Autocomplete tool and the general Places API in the Autocomplete Demo & Places API Demo & Discussion Video, given by Paul Saxman, a Developer Advocate at Google and Marcelo Camelo, Google's Technical Lead for the Places API. There is a portion near the end where they discuss adding new places and I think it will help clarify the results you are seeing. Anyway, I hope it helps -
I've been working on a google map (v3 of the api) that is plotting 120 markers or so (or will do shortly). If you view the source the map data is for all the see, is it possible to hide this?
I'm not worried about the code that is generating the map, just the data. The data is grabbed from a Wordpress cms.
I think your options mostly boil down to:
Obfuscate the data. Restructure it in such a way that it is difficult to recognize as location data, and inconvenient for other people to work with.
Don't include the data directly in the page body. Fetch it using an AJAX request instead. Determined users will still be able to get the data, but it won't be quite as easy/obvious, and it will not appear when doing a 'view source'.
You could of course combine the two approaches, and have an AJAX request that returns obfuscated data.
Although, your data appears to be names and locations of businesses, so I'm not sure why protecting it is a concern. Presumably any interested party could find the same information in a phone-book (or with a Google search) if they were so inclined.
I'm developing a app that makes use of the Gmaps Places library and actually, I have two questions:
1) Does anyone know how long it takes to an added place(by POST request) to show up on the map? I only need it on the app's map, so I don't care if Google doesn't approve it. I've already sent the add request and received OK as response.
2) It is possible to search for markers, placed by me, as if they were places(and using radius)? Not necessarily using the Places library. I ask this to see if is possible to come with a backup plan if the waiting mentioned above is long(clients, clients...). Then I would have the places 'offline from Gmaps', mapped inside a JSON file.
If I understand you correctly, you want to combine Google's Places API with a custom location set? Without more detail I can't really tell you what the code would look like, but you'd basically want to mash up the results you get from places with your own data and place markers based on that merge. If you're searching by radius or polygon you can do a 'within bounds' search on your dataset and return any results that are within the search zone to feed into your marker creator.
I have a KML-file with lots of data in it. I would like to show the data in a google map (or something similair) When the KML-file updates, I would like the google map to update. Is this possible?
What to you mean KML-file updates?
Are you generating the KML from your database so updates means that more points are inserted to your db?
Anyway if that's the case you can construct the browser to periodically ask the server if this KML is updated,retrieve it and finally remove the expired file from the map and show the new.
Because as far as i know there is no way you can "sync" the KML overlay automatically.