Hot answers tagged

14

Mehul, I used to work in the address verification industry with a company called SmartyStreets. There are lots of geocoding services out there, but only few will support batch processing with the volume you require. (Google and others don't permit bulk use of their API or storing/caching results.) If you go to your MySQL database and perform an export of ...


11

you can check out k-means clustering algorithm here. In data mining, k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean. This results into a partitioning of the data space into Voronoi cells. kmeans-postgresql ...


10

Firstly, it is possible to add your own data on top of Google Maps, using Google Maps API. For example, this and this page show two different ways of adding a WMS service on to of Google Maps. You can easily add vectors as overlays. OpenLayers has many advantages as compared to Google Maps API, including: It is completely Open Source and standard ...


9

In other implementations (as in, our implementation) this is done with palette modification; you can quickly recolor a PNG image without touching the actual data, if you know the full original palette. Google doesn't do that; they likely have a tile-based database and tiles of vector data that are rasterized on the fly.


7

If you like Python, you could use the GeoPy API, combined with the GDAL Python bindings or Fiona, and create a very basic script like this for converting the addresses to a point shapefile. This will geolocate a file named 'addresses_to_geocode', creating an output shapefile named 'my_output.shp' in my_output folder: import os from geopy import geocoders ...


7

Comment to Answer Google Map v3 API can use JSON Examples: github.com/JasonSanford/GeoJSON-to-Google-Maps – Mapperz♦ Apr 18 at 13:54


7

I'm not sure what tool you are using, but look into linear referencing methods. For example, if you are using PostGIS, here are 10 random points along a linestring: SELECT ST_Line_Interpolate_Point('LINESTRING (10 20, 50 60, 80 30, 140 60)', random()) FROM generate_series(1,10) Or if using Shapely: from random import random from shapely.geometry import ...


7

It really depends on your users requirements. I recently started a project in the Google Maps API, where I overlaid some services from ArcGIS Server and had some basic queries going on. I wanted to use Google, so that I could legally incorporate their Streetview/Geocoding/Traffic APIs into my map. As this would be a public facing application, I also ...


6

1) There's a bit of code you can add to your spreadsheet and run a macro. The instructions are detailed here: https://vilimpoc.org/blog/2013/07/11/google-spreadsheet-geocoding-macro/ 2) CartoDB can pull in a google doc spreadsheet directly from your account, then you can export it back out: 3) Download your Google Drive Spreadsheet to a CSV, then use ...


5

You could give Leaflet Maps Marker Wordpress Plugin a try Pin, organize & show your favorite places through OpenStreetMap/WMTS, Google Maps/Earth (KML), GeoJSON or Augmented-Reality browsers http://www.mapsmarker.com/


5

Officially you have to create tiles for your Panoramic image to become streetview controlled: Providing Custom StreetView Panoramas Function(pano,zoom,tileX,tileY):StreetViewPanoramaData The Maps Javascript API V3 supports the display of custom panoramas within the StreetViewPanorama object. Using custom panoramas, you can display the interior of ...


5

I think this is not so hard a problem to solve but I have my doubts about whether the accuracy is absolutely correct. First of all, you have to convert your center lat/lon to pixels with gdal2tiles codes. If I find some time and if you want, I can convert it to stable code for finding corner coordinates. This is a Python code: tileSize = 256 ...


5

Firstly you need to make sure that your WKT string is properly formatted. After that you can use a custom function to parse the string, and draw a polygon. I could use the following code: var wkt="POLYGON(...)"; //this is your WKT string //using regex, we will get the indivudal Rings var regex = /\(([^()]+)\)/g; var Rings = []; var results; while( ...


5

I think you will find numerous answers to similar questions on our site by searching the geocode tag. A few that stick out are: Geocoding API Comparison Bulk Geocode 20 million records What reliable GeoCoding service would you recommend me? Is there an open source Geocoding tool which can be used commercially? Geocoding that's anonymous, good, and free - ...


5

Get the x,y coordinates of the boundaries of countries from the following website Natural Earth (thanks, Devdatta Tengshe) which has more accurate data than others I've tried. Then use ArcGIS 10.2 to open the map shape file and select the boundaries you need. Go to data management tools --features-- features vertices to points and open the generated table. ...


5

I have used this code below in the past. It works pretty well. #http://stackoverflow.com/questions/14580540/get-location-coordinates-using-bing-or-google-api-in-python import urllib import json import arcpy import time import os arcpy.env.overwriteOutput = True GOOGLE = 'http://maps.googleapis.com/maps/api/geocode/json?' def Message(msg): print ...


4

you can achieve this with Google Maps JavaScript API v3 - Directions Service. There is a doc here. and you can see stand-alone google example here. and in this doc. you can get information about Travel Modes. When you calculate directions, you need to specify which transportation mode to use. The following travel modes are currently supported: ...


4

check out this example here which uses arcgis service time geoprocessing service and google maps. if your points locate in US, u can use CreateDriveTimePolygons from ESRI here. you need to do is that write Input Location, Drive Times and format as json then execute your process. beside this you should check out similar ques.: Creating drive time ...


4

There is the Route360 API that also works with Google Maps. https://developers.route360.net/index.html It offers quiet a few functionalities. Including different modes of transportation or the intersection of polygons As well you can add a few hundred points at once and see the result: It works for most countries in Europe and North America


4

From the Google Maps premier FAQ: The KmlLayer class that generates KML overlays in the Google Maps API uses a Google hosted service to retrieve and parse KML files for rendering. Consequently it is not possible to display KML files that are not hosted at a URL that is available publicly accessible, or that require authentication to access. ...


4

I don't think that it is possible to add local .kml files. The file needs to be stored at a location where the remote API is able to access it. You have several choices as suggested here: Parse the kml file yourself. There are helpful libraries for that. Upload the kml file via Dropbox or Google Docs (see here)


4

There are two approaches. One is brute-force: write code to find the distance between a point and a polygon, and then iterate over all polygons. The second involves building efficient data structures, an arduous process. For the first approach, you might look at this Wolfram Demonstration Project for computing the distance from a point to a polygon. Link ...


4

i dont know how do you define your proj4js defination in EPSG27700.js but you have to define it in openlayers as following: Proj4js.defs["EPSG:27700"] = "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs"; then you can transform it by this way: var ll = new ...


4

You need to configure your Google layer with an appropriate numZoomLevels value, and also override the internal default for the maximum zoom level with MAX_ZOOM_LEVEL. The latter will cause unexpected behavior if the Google layer does not support all zoom levels. new OpenLayers.Layer.Google('Satellite', { type: google.maps.MapTypeId.SATELLITE, ...


4

You shouldn't access the coordinates using the property names (i.e. 'Ya' and 'Za') instead use the .lat() and .lng() methods of the google.maps.LatLng object. So I assume your callback function loops through the array of the coordinates (as variable 'coords'). The simple example below would loop through this array and print out each coordinate to the ...


4

In fact, there are various way Google is identifying the requests that are done, and most of the time the way it is done is related to your use case. For general use and using the 'free' version: You can track the usage by specifying an API key even if it's not necessary anymore. The requests are managed by URL (referer) and by IP address. For general use ...


4

Yes. You are correct. Currently the functionality to zoom/fit bounds does not exist for polygon or line data from fusion tables. You will need to use the GVIZ (Google Visualization API) and the geoxml3 parser. I used some of the code from the following applications. One is a polygon example and the other is a line/arc example. There is a post in the Google ...


4

What you are requiring sounds like Map Channels (v4) or MapFab It's Simple you sign up and load your data from Google Spreadsheets in and you can edit/filter data. This does not edit data directly with the map. http://www.mapchannels.com/MC4Demo.aspx If you want edit data directly on the map I suggest: MapFab http://www.mapfab.com/editor/new (both ...


4

The following piece of code allows you to transform your latitude and longitude coordinates from epsg:3857 to epsg:4326 in just one line. Just substitute longitude and latitudine values to LON and LAT in the code. point = new OpenLayers.LonLat(LON,LAT).transform('EPSG:4326', 'EPSG:3857'); In point you'll have an OpenLayers readable point.


4

This may not be the exact answer, but may help you on your journey. Take a look at this Article on How to View Historical Satellite Imagery in Google Earth or Explore Google Earth's Historical Imagery. hope it helps on your adventure.



Only top voted, non community-wiki answers of a minimum length are eligible