开发者

Obtain distances to nearest landmarks (Mall, Hospital, and Airport etc.) using google map [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 5 years ago.

Improve this question

I am working on a project in which I have around 100000 addreses in major cities in India(it is a table in a database). I want to know if it is possible to obtain the distances to to nearest landmarks (Mall, Hospital, and Airport etc.). Ideally I want these distances to be mergeed to the parent tab开发者_StackOverflowle. We have Java and Php coders to get it done once we find out how to go about it. Any pointers will be of great help. Thank you.


(I will probably state the obvious here, but, if that is the case, please overlook those points and read on.)

General Distances

("As The Crow Flies" and for Limiting Search/Processing Loads)

Determining Distances Between Two Points can be done within the SQL Database / SELECT statement.
Reference: MySQL Great Circle (Haversine Formula)

SELECT
  acos(
      cos(radians( $latitude0 ))
    * cos(radians( $latitude1 ))
    * cos(radians( $longitude0 ) - radians( $longitude1 ))
    + sin(radians( $latitude0 ))
    * sin(radians( $latitude1 ))
  )*6371 AS greatCircleDistanceKMs
FROM yourTable

That can be used dynamically, if the Lat/Long of the point you are using to compare is likely to change (ie the user's address, etc.), or could be used to perform an UPDATE of a number of files in the event that the point you are using to compare is set (the location of your office, etc.)

If it is to be used dynamically, then it is also recommended that the set of rows this function is run against be limited.

WHERE
  searchLatitude BETWEEN latitude+1 AND latitude-1
  AND searchLongitude BETWEEN longitude+1 and longitude-1

Which will, essentially, create a 1 degree box around the searchLatitude/searchLongitude point, and reduce the number of calculations required.

Exact Distances

For Final Results

The Google Directions API provides functionality for you to get the actual travelling distance between two points using a simple HTTP Request.

An example URL would be, for "Chhatrapati Shivaji Int'l Airport" to "Taj Mahal Palace & Tower":
http://maps.google.com/maps/api/directions/xml?origin=Chhatrapati+Shivaji+International+Airport&destination=Taj+Mahal+Palace+%26+Tower,+Mahakavi+Bhushan+Road,+Apollo+Bandar+Mumbai&sensor=false

That will return an XML Response of:

<?xml version="1.0" encoding="UTF-8"?>
<DirectionsResponse>
 <status>OK</status>
 <route>
  <summary>Western Express Hwy/NH 8</summary>
  <leg>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0966100</lat>
     <lng>72.8656200</lng>
    </start_location>
    <end_location>
     <lat>19.1091100</lat>
     <lng>72.8539000</lng>
    </end_location>
    <polyline>
     <points>yxpsBcqv{LuAd@aEf@eBl@a^lQqDpBiS`PgAnAeArCoA`JiAbK</points>
     <levels>B???@?@???B</levels>
    </polyline>
    <duration>
     <value>112</value>
     <text>2 mins</text>
    </duration>
    <html_instructions>Head &lt;b&gt;north&lt;/b&gt; on &lt;b&gt;Sahar Rd&lt;/b&gt; toward &lt;b&gt;I A Project Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Priyadeep (on the left in 1.9&amp;nbsp;km)&lt;/div&gt;</html_instructions>
    <distance>
     <value>1978</value>
     <text>2.0 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.1091100</lat>
     <lng>72.8539000</lng>
    </start_location>
    <end_location>
     <lat>19.1061700</lat>
     <lng>72.8538800</lng>
    </end_location>
    <polyline>
     <points>}fssB{gt{LpHr@zCO|B_@</points>
     <levels>B??B</levels>
    </polyline>
    <duration>
     <value>52</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; toward &lt;b&gt;Western Express Hwy/NH 8&lt;/b&gt;</html_instructions>
    <distance>
     <value>332</value>
     <text>0.3 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.1061700</lat>
     <lng>72.8538800</lng>
    </start_location>
    <end_location>
     <lat>19.0991500</lat>
     <lng>72.8540500</lng>
    </end_location>
    <polyline>
     <points>qtrsBwgt{L|BAbTqCfCQrBJ|IvB</points>
     <levels>B??@?B</levels>
    </polyline>
    <duration>
     <value>82</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Continue straight onto &lt;b&gt;Western Express Hwy/NH 8&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Giriraj Ceramic Products (on the left in 750&amp;nbsp;m)&lt;/div&gt;</html_instructions>
    <distance>
     <value>799</value>
     <text>0.8 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0991500</lat>
     <lng>72.8540500</lng>
    </start_location>
    <end_location>
     <lat>19.0931000</lat>
     <lng>72.8507700</lng>
    </end_location>
    <polyline>
     <points>uhqsByht{LdMlDxG|AdC~@jBdAzBjB~@hAj@fA</points>
     <levels>B??@???B</levels>
    </polyline>
    <duration>
     <value>35</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Slight &lt;b&gt;right&lt;/b&gt; toward &lt;b&gt;Western Express Hwy/NH 8&lt;/b&gt;</html_instructions>
    <distance>
     <value>772</value>
     <text>0.8 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0931000</lat>
     <lng>72.8507700</lng>
    </start_location>
    <end_location>
     <lat>19.0507200</lat>
     <lng>72.8404700</lng>
    </end_location>
    <polyline>
     <points>{bpsBits{LjAfCr@rCbCdS`@vB\dAhAdBvBhB`Af@`Ch@bBHnAExCk@nAm@l@e@nGuF~Ay@fDaAlXcDxx@f@~UBbPPvVF|HLhXAdD\~Bn@lCxA|AbBjAdCz@nDfGfS</points>
     <levels>B????@???@??@????@@?????@???@??B</levels>
    </polyline>
    <duration>
     <value>252</value>
     <text>4 mins</text>
    </duration>
    <html_instructions>Continue straight onto &lt;b&gt;Western Express Hwy/NH 8&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by St Joseph's (on the left in 3.5&amp;nbsp;km)&lt;/div&gt;</html_instructions>
    <distance>
     <value>5666</value>
     <text>5.7 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0507200</lat>
     <lng>72.8404700</lng>
    </start_location>
    <end_location>
     <lat>19.0429200</lat>
     <lng>72.8401400</lng>
    </end_location>
    <polyline>
     <points>_zgsB}sq{LfBjBj@ZxB^h@XZfAN~Ab@b@l@VnJEn@MrBg@lQgH</points>
     <levels>B???????@?@?B</levels>
    </polyline>
    <duration>
     <value>54</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Exit onto &lt;b&gt;S V Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Saraswati Dattatray Electricals &amp;amp; Co., (SDEC) (on the left in 500&amp;nbsp;m)&lt;/div&gt;</html_instructions>
    <distance>
     <value>1019</value>
     <text>1.0 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0429200</lat>
     <lng>72.8401400</lng>
    </start_location>
    <end_location>
     <lat>19.0332800</lat>
     <lng>72.8422800</lng>
    </end_location>
    <polyline>
     <points>gifsB{qq{LXAxCcAfLsEzDiAxDs@jC[lFQtIDdFR</points>
     <levels>B????@???B</levels>
    </polyline>
    <duration>
     <value>77</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Continue onto &lt;b&gt;A S Gaya Marg/Lady Jamshedji Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Dawood Khan (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>1117</value>
     <text>1.1 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0332800</lat>
     <lng>72.8422800</lng>
    </start_location>
    <end_location>
     <lat>19.0249800</lat>
     <lng>72.8406100</lng>
    </end_location>
    <polyline>
     <points>_mdsBg_r{LtI^lb@pFbBXrA`@</points>
     <levels>B???B</levels>
    </polyline>
    <duration>
     <value>62</value>
     <text>1 min</text>
    </duration>
    <html_instructions>At Emerald Surgicare (P) Ltd, continue onto &lt;b&gt;Lady Jamshedjee Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Petrol Pump (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>941</value>
     <text>0.9 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0249800</lat>
     <lng>72.8406100</lng>
    </start_location>
    <end_location>
     <lat>19.0217700</lat>
     <lng>72.8424900</lng>
    </end_location>
    <polyline>
     <points>cybsBytq{LvEeB~@gAlB}CXSx@SfDC</points>
     <levels>B?????B</levels>
    </polyline>
    <duration>
     <value>41</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; at Gadkari Chowk onto &lt;b&gt;NC Kelkar Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Dhyan Securities Pvt Ltd (on the right)&lt;/div&gt;</html_instructions>
    <distance>
     <value>432</value>
     <text>0.4 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0217700</lat>
     <lng>72.8424900</lng>
    </start_location>
    <end_location>
     <lat>19.0179000</lat>
     <lng>72.8475600</lng>
    </end_location>
    <polyline>
     <points>aebsBq`r{L^c@tAm@XB^QpHeNbHoL</points>
     <levels>B?????B</levels>
    </polyline>
    <duration>
     <value>63</value>
     <text>1 min</text>
    </duration>
    <html_instructions>At the roundabout, take the &lt;b&gt;1st&lt;/b&gt; exit onto &lt;b&gt;Tilak Bridge&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Vanmali Chk (on the right)&lt;/div&gt;</html_instructions>
    <distance>
     <value>702</value>
     <text>0.7 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0179000</lat>
     <lng>72.8475600</lng>
    </start_location>
    <end_location>
     <lat>19.0131500</lat>
     <lng>72.8550800</lng>
    </end_location>
    <polyline>
     <points>{lasBg`s{LUa@Fs@RSv@DvZ{j@</points>
     <levels>B????B</levels>
    </polyline>
    <duration>
     <value>160</value>
     <text>3 mins</text>
    </duration>
    <html_instructions>At the roundabout, take the &lt;b&gt;2nd&lt;/b&gt; exit onto &lt;b&gt;Tilak Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Sargam Florists (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>987</value>
     <text>1.0 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>19.0131500</lat>
     <lng>72.8550800</lng>
    </start_location>
    <end_location>
     <lat>18.9933600</lat>
     <lng>72.8515000</lng>
    </end_location>
    <polyline>
     <points>eo`sBgot{LzB`AdDr@jMv@rHVhRN`Zj@vMjB~E^zEt@lIbCdDbC</points>
     <levels>B??@??@??@?B</levels>
    </polyline>
    <duration>
     <value>233</value>
     <text>4 mins</text>
    </duration>
    <html_instructions>Turn &lt;b&gt;right&lt;/b&gt; at Shobha Hospital onto &lt;b&gt;Rafi Ahmed Kidwai Marg&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Sukkur Bhawan (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>2264</value>
     <text>2.3 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9933600</lat>
     <lng>72.8515000</lng>
    </start_location>
    <end_location>
     <lat>18.9675800</lat>
     <lng>72.8448800</lng>
    </end_location>
    <polyline>
     <points>os|rB{xs{L~AbBbMtOtYjb@dAn@pCr@`ZsEp[aEvJ}AzPwBzBa@nBI`E@zFz@~Ad@^T</points>
     <levels>B??@?@????@????B</levels>
    </polyline>
    <duration>
     <value>203</value>
     <text>3 mins</text>
    </duration>
    <html_instructions>Continue onto &lt;b&gt;Barrister Nath Pai Marg&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Everest Marine Ply - J. Himatlal &amp;amp; Co. (on the left in 1.6&amp;nbsp;km)&lt;/div&gt;</html_instructions>
    <distance>
     <value>3360</value>
     <text>3.4 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9675800</lat>
     <lng>72.8448800</lng>
    </start_location>
    <end_location>
     <lat>18.9382900</lat>
     <lng>72.8379900</lng>
    </end_location>
    <polyline>
     <points>krwrBoor{LxCf@rBh@`Bf@nCpAnAFpAEfBSr@Y^?dk@nIdm@rJbEb@rz@xM</points>
     <levels>B????????????B</levels>
    </polyline>
    <duration>
     <value>246</value>
     <text>4 mins</text>
    </duration>
    <html_instructions>At Our Lady of the Rosary Church, continue onto &lt;b&gt;P D Mello Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Petrol Pump (on the left in 1.9&amp;nbsp;km)&lt;/div&gt;</html_instructions>
    <distance>
     <value>3356</value>
     <text>3.4 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9382900</lat>
     <lng>72.8379900</lng>
    </start_location>
    <end_location>
     <lat>18.9344900</lat>
     <lng>72.8371000</lng>
    </end_location>
    <polyline>
     <points>i{qrBmdq{LjIlAvI|ArAD</points>
     <levels>B??B</levels>
    </polyline>
    <duration>
     <value>56</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Continue onto &lt;b&gt;S Bhagat Singh Marg&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by SIB (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>433</value>
     <text>0.4 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9344900</lat>
     <lng>72.8371000</lng>
    </start_location>
    <end_location>
     <lat>18.9321900</lat>
     <lng>72.8357900</lng>
    </end_location>
    <polyline>
     <points>qcqrB{~p{Ll@?bDf@^RtC`DbAf@</points>
     <levels>B????B</levels>
    </polyline>
    <duration>
     <value>32</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Continue onto &lt;b&gt;Mint Rd&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Mint Police Station (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>302</value>
     <text>0.3 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9321900</lat>
     <lng>72.8357900</lng>
    </start_location>
    <end_location>
     <lat>18.9243200</lat>
     <lng>72.8320700</lng>
    </end_location>
    <polyline>
     <points>euprBuvp{LdIj@XNhAxArA`ApHfCtDX`C@lA\r@n@fAvCf@f@j@LNR?XnC`@</points>
     <levels>B???????@??????B</levels>
    </polyline>
    <duration>
     <value>97</value>
     <text>2 mins</text>
    </duration>
    <html_instructions>Continue onto &lt;b&gt;Shahid Bhagat Singh Rd/Shahid Bhagat SIngh Marg&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Go through 1 roundabout&lt;/div&gt;&lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Town Hall (on the left)&lt;/div&gt;</html_instructions>
    <distance>
     <value>1022</value>
     <text>1.0 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9243200</lat>
     <lng>72.8320700</lng>
    </start_location>
    <end_location>
     <lat>18.9230100</lat>
     <lng>72.8334800</lng>
    </end_location>
    <polyline>
     <points>_dorBm_p{LvFmERa@Ei@</points>
     <levels>B??B</levels>
    </polyline>
    <duration>
     <value>30</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Turn &lt;b&gt;left&lt;/b&gt; at CBI onto &lt;b&gt;Mahakavi Bhushan Rd/Rajkavi Ghushan Marg&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Pass by Kalajot Hospital (on the right)&lt;/div&gt;</html_instructions>
    <distance>
     <value>220</value>
     <text>0.2 km</text>
    </distance>
   </step>
   <step>
    <travel_mode>DRIVING</travel_mode>
    <start_location>
     <lat>18.9230100</lat>
     <lng>72.8334800</lng>
    </start_location>
    <end_location>
     <lat>18.9219500</lat>
     <lng>72.8335500</lng>
    </end_location>
    <polyline>
     <points>y{nrBghp{LdA_@t@KvA\</points>
     <levels>B??B</levels>
    </polyline>
    <duration>
     <value>46</value>
     <text>1 min</text>
    </duration>
    <html_instructions>Turn &lt;b&gt;right&lt;/b&gt; at Mumbai Hotels Booking onto &lt;b&gt;Appolo Bunder/P J Ramchandani Marg&lt;/b&gt; &lt;div style=&quot;font-size:0.9em&quot;&gt;Destination will be on the right&lt;/div&gt;</html_instructions>
    <distance>
     <value>124</value>
     <text>0.1 km</text>
    </distance>
   </step>
   <duration>
    <value>1933</value>
    <text>32 mins</text>
   </duration>
   <distance>
    <value>25826</value>
    <text>25.8 km</text>
   </distance>
   <start_location>
    <lat>19.0966100</lat>
    <lng>72.8656200</lng>
   </start_location>
   <end_location>
    <lat>18.9219500</lat>
    <lng>72.8335500</lng>
   </end_location>
   <start_address>Chhatrapati Shivaji International Airport, Vile Parle East, Mumbai, Maharashtra, India</start_address>
   <end_address>Taj Mahal Palace &amp; Tower, P J Ramchandani Marg, Apollo Bandar, Mumbai, Maharashtra 400001, India</end_address>
  </leg>
  <overview_polyline>
   <points>yxpsBcqv{LuAd@aEf@eBl@a^lQqDpBiS`PgAnAeArCoA`JiAbKpHr@nAChEk@|BAbTqCfCQl@@dAHhE`AbJhCxQvEfDdBzBjB~@hAvBnEr@rCbCdS`@vBh@xA|@pAvBhB`Af@`Ch@bBHnAExCk@nAm@l@e@nGuF~Ay@fDaAlXcDxx@f@~UBbPPvVF|HLhWClDX|Bh@fDdBz@x@l@z@~@rBz@nDfGfSfBjBj@ZxB^h@XZfAN~Ab@b@l@VnJErAYnA[vEgBPObJoDXAxCcAfLsEzDiAdB]vGw@jIM~DFzPr@lb@pFbBXrA`@vEeB~@gAlB}CXSx@SfDC^c@tAm@XB^QpHeNbHoLUa@Fs@RSv@DvZ{j@zB`AdDr@jMv@rHVhRN`Zj@vMjB`DRnFt@vJnChCfBjAhArNjQtYjb@dAn@pCr@`ZsEp[aEvJ}AzPwBzBa@nBI`E@zFz@~Ad@^TxCf@rBh@`Bf@nCpAnAFpAEfBSr@Y^?dk@nIdm@rJbEb@b\bFnWhEjOxBvI|A`CDbDf@^RtC`DbAf@dIj@XNhAxAzBxAhGnBtDX`C@lA\r@n@fAvCf@f@j@LNR?XnC`@vFmERa@Ei@dA_@t@KvA\</points>
   <levels>B???@?@???A??????@???@???@???@???A??@????@@?????@???@???@???????@?@?????????@??@??A???@?????@??????A??@??@???@?????@??????@??????@????@????????@??????@???@?????@??????B</levels>
  </overview_polyline>
 </route>
</DirectionsResponse>

The elements containing the details for the full journey are:

DirectionsResponse > route > distance > value
The distance, in a base unit, for the complete journey

DirectionsResponse > route > distance > text
The distance, in a plain English form, for the complete journey

DirectionsResponse > route > duration > value
The estimated travel time, in a base unit (seconds), for the complete journey

DirectionsResponse > route > duration > text
The estimated travel time, in a plain English form, for the complete journey

You could then use the PHP DOMDocument CLASS to parse the result and extract these details.

NOTE: From the Google Directions API page "Use of the Google Directions API is subject to a query limit of 2,500 directions requests per day. Individual directions requests may contain up to 8 intermediate waypoints in the request. Google Maps Premier customers may query up to 100,000 directions requests per day, with up to 23 waypoints allowed in each request."

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜