使用Google地图获取到最近的地标(购物中心,医院和机场等)的距离 - java

Improve this question

我正在做一个项目,在印度的主要城市中,我有大约100000个地址(这是数据库中的表格)。我想知道是否可以获取到最近的地标(购物中心,医院和机场等)的距离。理想情况下,我希望将这些距离合并到父表中。一旦找到解决方法,我们就会有Java和Php编码器来完成它。任何指针都会有很大帮助。谢谢。

参考方案

(我可能会在这里说明显而易见的内容,但是,如果是这种情况,请忽略这些要点并继续阅读。)

一般距离

(“乌鸦飞翔”并用于限制搜索/处理负荷)

确定两个点之间的距离可以在SQL数据库/ SELECT语句中完成。
参考: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

如果您要比较的点的纬度/经度很可能会发生变化(即用户的地址等),或者在发生以下情况时可用于对多个文件进行更新,则可以动态使用该值:设定要用来比较的点(办公室的位置等)

如果要动态使用它,则还建议限制运行此函数的行集。

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

实质上,这将在searchLatitude / searchLongitude点周围创建一个1度的框,并减少所需的计算数量。

精确距离

最终结果

Google Directions API为您提供使用简单的HTTP请求获取两点之间实际行进距离的功能。

例如,对于“贾特拉帕蒂·希瓦吉国际机场”,URL为“泰姬陵宫殿与塔楼”:
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

这将返回以下XML响应:

<?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>

包含整个旅程细节的元素是:

DirectionsResponse>路线>距离>值
以基本单位表示的完整行程的距离

DirectionsResponse>路线>距离>文字
以简单的英语形式表示的完整旅程的距离

DirectionsResponse>路线>持续时间>值
整个行程的估计行程时间(以基本单位(秒)为单位)

DirectionsResponse>路线>持续时间>文字
完整行程的估计旅行时间,用简单的英语形式

然后,您可以使用PHP DOMDocument CLASS解析结果并提取这些详细信息。

注意:在Google Directions API页面上,“每天使用Google Directions API的查询限制为2500个路线请求。单个路线请求中最多可以包含8个中间航路点。GoogleMaps Premier客户最多可以查询每天有100,000个路线请求,每个请求中最多允许23个航路点。”

休眠映射<键,设置<值>> - java

我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …

无法从ArrayList <String>转换为List <Comparable> - java

当我写下面的代码时,编译器说 无法从ArrayList<String>转换为List<Comparable>private List<Comparable> get(){ return new ArrayList<String>(); } 但是当我用通配符编写返回类型时,代码会编译。private List&l…

合并List <T>和List <Optional <T >> - java

鉴于: List<Integer> integers = new ArrayList<>(Arrays.asList( 10, 12 )); List<Optional<Integer>> optionalIntegers = Arrays.asList( Optional.of(5), Optional.em…

实例化类型<?>的泛型类 - java

我正在为SCJP / OCPJP学习,并且遇到了一个对我来说很奇怪的示例问题。该示例代码实例化了两个通用集合:List<?> list = new ArrayList<?>(); List<? extends Object> list2 = new ArrayList<? extends Object>(); …

List <Dog>是List <Animal>的子类吗?为什么Java泛型不是隐式多态的? - java

我对Java泛型如何处理继承/多态感到困惑。假设以下层次结构-动物(父母)狗-猫(儿童)因此,假设我有一个方法doSomething(List<Animal> animals)。根据继承和多态性的所有规则,我假设List<Dog>是List<Animal>,而List<Cat>是List<Animal&g…