Preparing second and third benchmarks; backing up MySQL database
authorrtrimana <rtrimana@uci.edu>
Wed, 21 Dec 2016 21:57:43 +0000 (13:57 -0800)
committerrtrimana <rtrimana@uci.edu>
Wed, 21 Dec 2016 21:57:43 +0000 (13:57 -0800)
27 files changed:
benchmarks/IrrigationController/DayWeather.java [new file with mode: 0644]
benchmarks/IrrigationController/IrrigationController.config [new file with mode: 0644]
benchmarks/IrrigationController/IrrigationController.java [new file with mode: 0644]
benchmarks/IrrigationController/LawnState.java [new file with mode: 0644]
benchmarks/IrrigationController/MANIFEST.MF [new file with mode: 0644]
benchmarks/IrrigationController/Makefile [new file with mode: 0644]
benchmarks/IrrigationController/MotionDetection.java [new file with mode: 0644]
benchmarks/IrrigationController/MotionDetectionCallback.java [new file with mode: 0644]
benchmarks/IrrigationController/Tuple.java [new file with mode: 0644]
benchmarks/IrrigationController/WeatherGrabber.java [new file with mode: 0644]
benchmarks/IrrigationController/help_files/city_list_us.json [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/error.html [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/state0.html [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/state1A.html [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/state1B.html [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/state2.html [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/state4.html [new file with mode: 0644]
benchmarks/IrrigationController/help_files/html_files/state5.html [new file with mode: 0644]
benchmarks/IrrigationController/resources/area_codes.csv [new file with mode: 0644]
benchmarks/IrrigationController/resources/zipcode.csv [new file with mode: 0644]
benchmarks/SpeakerController/MP3Decoder.java [new file with mode: 0644]
benchmarks/SpeakerController/Makefile [new file with mode: 0644]
benchmarks/SpeakerController/SpeakerController.config [new file with mode: 0644]
benchmarks/SpeakerController/SpeakerController.java [new file with mode: 0644]
benchmarks/SpeakerController/music/cool.mp3 [new file with mode: 0644]
others/Mysql/IoTMain.gz [new file with mode: 0644]
others/Mysql/README [new file with mode: 0644]

diff --git a/benchmarks/IrrigationController/DayWeather.java b/benchmarks/IrrigationController/DayWeather.java
new file mode 100644 (file)
index 0000000..90e0f1e
--- /dev/null
@@ -0,0 +1,852 @@
+package IrrigationController;
+
+// Standard Java Packages
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
+import java.util.Date;
+
+/** Class DayWeather to represent the parsed weather data as a compact object.
+ *
+ * @author      Ali Younis <ayounis @ uci.edu>
+ * @version     1.0
+ * @since       2016-03-24
+ */
+public class DayWeather {
+
+       // enumeration representing the weather conditions
+       public enum WeatherConditions {
+               THUNDERSTORM_WITH_LIGHT_RAIN,
+               THUNDERSTORM_WITH_RAIN,
+               THUNDERSTORM_WITH_HEAVY_RAIN,
+               LIGHT_THUNDERSTORM,
+               THUNDERSTORM,
+               HEAVY_THUNDERSTORM,
+               RAGGED_THUNDERSTORM,
+               THUNDERSTORM_WITH_LIGHT_DRIZZLE,
+               THUNDERSTORM_WITH_DRIZZLE,
+               THUNDERSTORM_WITH_HEAVY_DRIZZLE,
+               LIGHT_INTENSITY_DRIZZLE,
+               DRIZZLE,
+               HEAVY_INTENSITY_DRIZZLE,
+               LIGHT_INTENSITY_DRIZZLE_RAIN,
+               DRIZZLE_RAIN,
+               HEAVY_INTENSITY_DRIZZLE_RAIN,
+               SHOWER_RAIN_AND_DRIZZLE,
+               HEAVY_SHOWER_RAIN_AND_DRIZZLE,
+               SHOWER_DRIZZLE,
+               LIGHT_RAIN,
+               MODERATE_RAIN,
+               HEAVY_INTENSITY_RAIN,
+               VERY_HEAVY_RAIN,
+               EXTREME_RAIN,
+               FREEZING_RAIN,
+               LIGHT_INTENSITY_SHOWER_RAIN,
+               SHOWER_RAIN,
+               HEAVY_INTENSITY_SHOWER_RAIN,
+               RAGGED_SHOWER_RAIN,
+               LIGHT_SNOW,
+               SNOW,
+               HEAVY_SNOW,
+               SLEET,
+               SHOWER_SLEET,
+               LIGHT_RAIN_AND_SNOW,
+               RAIN_AND_SNOW,
+               LIGHT_SHOWER_SNOW,
+               SHOWER_SNOW,
+               HEAVY_SHOWER_SNOW,
+               MIST,
+               SMOKE,
+               HAZE,
+               SAND_DUST_WHIRLS,
+               FOG,
+               SAND,
+               DUST,
+               VOLCANIC_ASH,
+               SQUALLS,
+               TORNADO,
+               CLEAR_SKY,
+               FEW_CLOUDS,
+               SCATTERED_CLOUDS,
+               BROKEN_CLOUDS,
+               OVERCAST_CLOUDS,
+               TROPICAL_STORM,
+               COLD,
+               HOT,
+               WINDY,
+               HAIL,
+               CALM,
+               LIGHT_BREEZE,
+               GENTLE_BREEZE,
+               MODERATE_BREEZE,
+               FRESH_BREEZE,
+               STRONG_BREEZE,
+               HIGH_WIND_NEAR_GALE,
+               GALE,
+               SEVERE_GALE,
+               STORM,
+               VIOLENT_STORM,
+               HURRICANE,
+               UNKNOWN
+       };
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Variables
+       **
+       *******************************************************************************************************************************************/
+       private Date date = null;
+       private WeatherConditions weatherCondition = WeatherConditions.UNKNOWN;
+
+       // Wind Information
+       private String windDirection = "";
+       private int windDirectionDegrees = 0;                   // In degrees
+       private float windSpeed = 0;                                                    // In Miles per hour
+
+       // Temperature Information
+       private float dayTemperature = 0;                                       // In degrees F
+       private float eveningTemperature = 0;                   // In degrees F
+       private float morningTemperature = 0;                   // In degrees F
+       private float nightTemperature = 0;                             // In degrees F
+       private float maxTemperature = 0;                                       // In degrees F
+       private float minTemperature = 0;                                       // In degrees F
+
+       // Other Information
+       private float pressure = 0;                                             // In hPa
+       private float humidity = 0;                                             // In percent
+       private float cloudPercentage = 0;              // In percent
+
+
+       /** Constructor.
+        *
+        *  @param _date                  [String], String representing the date information for this days weather.
+        *  @param _weatherCondition      [String], String representing the weather condition code information for this days weather.
+        *  @param _windDirection         [String], String representing the wind direction in text format information for this days weather.
+        *  @param _windDirectionDegrees  [String], String representing the wind direction in degrees information for this days weather.
+        *  @param _windSpeed             [String], String representing the wind speed information for this days weather.
+        *  @param _dayTemperature        [String], String representing the day temperature information for this days weather.
+        *  @param _eveningTemperature    [String], String representing the evening temperature information for this days weather.
+        *  @param _morningTemperature    [String], String representing the morning temperature information for this days weather.
+        *  @param _nighttemperature      [String], String representing the night temperature information for this days weather.
+        *  @param _maxTemperature        [String], String representing the max temperature information for this days weather.
+        *  @param _minTemperature        [String], String representing the min temperature information for this days weather.
+        *  @param _pressure              [String], String representing the pressure information for this days weather.
+        *  @param _humidity              [String], String representing the humidity percentage information for this days weather.
+        *  @param _cloudPercentage       [String], String representing the cloud coverage percentage information for this days weather.
+        *
+        */
+       public DayWeather(String _date,
+                                                                               String _weatherCondition,
+                                                                               String _windDirection,
+                                                                               String _windDirectionDegrees,
+                                                                               String _windSpeed,
+                                                                               String _dayTemperature,
+                                                                               String _eveningTemperature,
+                                                                               String _morningTemperature,
+                                                                               String _nighttemperature,
+                                                                               String _maxTemperature,
+                                                                               String _minTemperature,
+                                                                               String _pressure,
+                                                                               String _humidity,
+                                                                               String _cloudPercentage) {
+
+               SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+               try {
+                       date = formatter.parse(_date);
+               } catch (ParseException e) {
+                       e.printStackTrace();
+               }
+
+               weatherCondition = getWeatherConditionForCode(Integer.parseInt(_weatherCondition));
+
+               // Wind Variable
+               windDirection = _windDirection;
+               windDirectionDegrees = Integer.parseInt(_windDirectionDegrees);
+               windSpeed = Float.parseFloat(_windSpeed);
+
+               // Temperature Information
+               dayTemperature = Float.parseFloat(_dayTemperature);
+               eveningTemperature = Float.parseFloat(_eveningTemperature);
+               morningTemperature = Float.parseFloat(_morningTemperature);
+               nightTemperature = Float.parseFloat(_nighttemperature);
+               maxTemperature = Float.parseFloat(_maxTemperature);
+               minTemperature = Float.parseFloat(_minTemperature);
+
+               // Other Information
+               pressure = Float.parseFloat(_pressure);
+               humidity = Float.parseFloat(_humidity);
+               cloudPercentage = Float.parseFloat(_cloudPercentage);
+       }
+
+
+       /** Method to get the date for this weather object.
+        *
+        *   @return [Date] Date and time for this weather object.
+        */
+       public Date getDate() {
+               return date;
+       }
+
+
+       /** Method to get the wind direction text (N,NE,S,EXT).
+        *
+        *   @return [String] Wind direction in compass text.
+        */
+       public String getWindDirection() {
+               return windDirection;
+       }
+
+
+       /** Method to get the wind direction in degrees.
+        *
+        *   @return [int] Wind direction in degrees.
+        */
+       public int getWindDirectionDegrees() {
+               return windDirectionDegrees;
+       }
+
+
+       /** Method to get the wind speed in miles per hour.
+        *
+        *   @return [float] Wind speed in miles per hour.
+        */
+       public float getWindSpeed() {
+               return windSpeed;
+       }
+
+
+       /** Method to get the temperature during the day.
+        *
+        *   @return [float] Temperature in degrees F.
+        */
+       public float getDayTemperature() {
+               return dayTemperature;
+       }
+
+       /** Method to get the temperature during the evening.
+        *
+        *   @return [float] Temperature in degrees F.
+        */
+       public float getEveningTemperature() {
+               return eveningTemperature;
+       }
+
+
+       /** Method to get the temperature during the morning.
+        *
+        *   @return [float] Temperature in degrees F.
+        */
+       public float getMorningTemperature() {
+               return morningTemperature;
+       }
+
+
+       /** Method to get the temperature during the night.
+        *
+        *   @return [float] Temperature in degrees F.
+        */
+       public float getNighttemperature() {
+               return nightTemperature;
+       }
+
+
+       /** Method to get the max temperature.
+        *
+        *   @return [float] Temperature in degrees F.
+        */
+       public float getMaxTemperature() {
+               return maxTemperature;
+       }
+
+
+       /** Method to get the min temperature.
+        *
+        *   @return [float] Temperature in degrees F.
+        */
+       public float getMinTemperature() {
+               return minTemperature;
+       }
+
+
+       /** Method to get the pressure.
+        *
+        *   @return [float] Pressure in hPa.
+        */
+       public float getPressure() {
+               return pressure;
+       }
+
+
+       /** Method to get the humidity.
+        *
+        *   @return [float] Humidity percentage.
+        */
+       public float getHumidity() {
+               return humidity;
+       }
+
+
+       /** Method to get the cloud coverage percentage.
+        *
+        *   @return [float] Cloud coverage percentage.
+        */
+       public float getCloudPercentage() {
+               return cloudPercentage;
+       }
+
+
+       /** Method to check if this day is a wet day such as rain or something
+        *
+        *   @return [float] Cloud coverage percentage.
+        */
+       public boolean getIsWetDay() {
+               if ((weatherCondition == WeatherConditions.THUNDERSTORM_WITH_LIGHT_RAIN) ||
+                               (weatherCondition == WeatherConditions.THUNDERSTORM_WITH_RAIN) ||
+                               (weatherCondition == WeatherConditions.THUNDERSTORM_WITH_HEAVY_RAIN) ||
+                               (weatherCondition == WeatherConditions.LIGHT_THUNDERSTORM) ||
+                               (weatherCondition == WeatherConditions.THUNDERSTORM) ||
+                               (weatherCondition == WeatherConditions.HEAVY_THUNDERSTORM) ||
+                               (weatherCondition == WeatherConditions.RAGGED_THUNDERSTORM) ||
+                               (weatherCondition == WeatherConditions.THUNDERSTORM_WITH_LIGHT_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.THUNDERSTORM_WITH_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.THUNDERSTORM_WITH_HEAVY_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.LIGHT_INTENSITY_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.HEAVY_INTENSITY_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.LIGHT_INTENSITY_DRIZZLE_RAIN) ||
+                               (weatherCondition == WeatherConditions.DRIZZLE_RAIN) ||
+                               (weatherCondition == WeatherConditions.HEAVY_INTENSITY_DRIZZLE_RAIN) ||
+                               (weatherCondition == WeatherConditions.SHOWER_RAIN_AND_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.HEAVY_SHOWER_RAIN_AND_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.SHOWER_DRIZZLE) ||
+                               (weatherCondition == WeatherConditions.LIGHT_RAIN) ||
+                               (weatherCondition == WeatherConditions.MODERATE_RAIN) ||
+                               (weatherCondition == WeatherConditions.HEAVY_INTENSITY_RAIN) ||
+                               (weatherCondition == WeatherConditions.VERY_HEAVY_RAIN) ||
+                               (weatherCondition == WeatherConditions.EXTREME_RAIN) ||
+                               (weatherCondition == WeatherConditions.FREEZING_RAIN) ||
+                               (weatherCondition == WeatherConditions.LIGHT_INTENSITY_SHOWER_RAIN) ||
+                               (weatherCondition == WeatherConditions.SHOWER_RAIN) ||
+                               (weatherCondition == WeatherConditions.HEAVY_INTENSITY_SHOWER_RAIN) ||
+                               (weatherCondition == WeatherConditions.RAGGED_SHOWER_RAIN) ||
+                               (weatherCondition == WeatherConditions.SHOWER_SLEET) ||
+                               (weatherCondition == WeatherConditions.LIGHT_RAIN_AND_SNOW) ||
+                               (weatherCondition == WeatherConditions.RAIN_AND_SNOW) ||
+                               (weatherCondition == WeatherConditions.LIGHT_SHOWER_SNOW) ||
+                               (weatherCondition == WeatherConditions.SHOWER_SNOW) ||
+                               (weatherCondition == WeatherConditions.HEAVY_SHOWER_SNOW) ||
+                               (weatherCondition == WeatherConditions.TORNADO) ||
+                               (weatherCondition == WeatherConditions.TROPICAL_STORM) ||
+                               (weatherCondition == WeatherConditions.WINDY) ||
+                               (weatherCondition == WeatherConditions.HAIL) ||
+                               (weatherCondition == WeatherConditions.STORM) ||
+                               (weatherCondition == WeatherConditions.VIOLENT_STORM) ||
+                               (weatherCondition == WeatherConditions.HURRICANE)) {
+                       return true;
+               }
+               return false;
+       }
+
+
+       /** Method to get the string representation of this object.
+        *
+        *   @return [String] String representation of this object.
+        */
+       public String toString() {
+               String retString = "";
+               SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");
+               retString += "Forcast for day: " + df.format(date) + "\n";
+               retString += "\t" + "Weather Condition:" + "\n";
+               retString += "\t\t" + "Weather Condition: " + getStringforWeatherCondition(weatherCondition) + "\n";
+
+               // Wind information to string
+               retString += "\t" + "Wind Information:" + "\n";
+               retString += "\t\t" + "Wind Direction (Text)   : " + windDirection + "\n";
+               retString += "\t\t" + "Wind Direction (Degrees): " + Integer.toString(windDirectionDegrees) + "\n";
+               retString += "\t\t" + "Wind Speed (mph)        : " + Float.toString(windSpeed) + "\n";
+
+               // Temperature information to string
+               retString += "\t" + "Temperature Information:" + "\n";
+               retString += "\t\t" + "Day Temperature (Degrees F)     : " + Float.toString(dayTemperature) + "\n";
+               retString += "\t\t" + "Evening Temperature (Degrees F) : " + Float.toString(eveningTemperature) + "\n";
+               retString += "\t\t" + "Morning Temperature (Degrees F) : " + Float.toString(morningTemperature) + "\n";
+               retString += "\t\t" + "Night Temperature (Degrees F)   : " + Float.toString(nightTemperature) + "\n";
+               retString += "\t\t" + "Max Temperature (Degrees F)     : " + Float.toString(maxTemperature) + "\n";
+               retString += "\t\t" + "Min Temperature (Degrees F)     : " + Float.toString(minTemperature) + "\n";
+
+               // Other information to string
+               retString += "\t" + "Other Information:" + "\n";
+               retString += "\t\t" + "Pressure (hPa)     : " + Float.toString(pressure) + "\n";
+               retString += "\t\t" + "Humidity (Percentage)     : " + Float.toString(humidity) + "\n";
+               retString += "\t\t" + "Cloud Coverage (Percentage)     : " + Float.toString(cloudPercentage) + "\n";
+
+
+               return retString;
+       }
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Helper Methods
+       **
+       *******************************************************************************************************************************************/
+
+       /** Method get the string representation of the weather condition for display.
+        *
+        *   @param cond [WeatherConditions], weather condition code.
+        *
+        *   @return [String] String representation of the weather condition.
+        */
+       private String getStringforWeatherCondition(WeatherConditions cond) {
+               switch (cond) {
+               case THUNDERSTORM_WITH_LIGHT_RAIN:
+                       return "THUNDERSTORM_WITH_LIGHT_RAIN";
+
+               case THUNDERSTORM_WITH_RAIN:
+                       return "THUNDERSTORM_WITH_RAIN";
+
+               case THUNDERSTORM_WITH_HEAVY_RAIN:
+                       return "THUNDERSTORM_WITH_HEAVY_RAIN";
+
+               case LIGHT_THUNDERSTORM:
+                       return "LIGHT_THUNDERSTORM";
+
+               case THUNDERSTORM:
+                       return "THUNDERSTORM";
+
+               case HEAVY_THUNDERSTORM:
+                       return "HEAVY_THUNDERSTORM";
+
+               case RAGGED_THUNDERSTORM:
+                       return "RAGGED_THUNDERSTORM";
+
+               case THUNDERSTORM_WITH_LIGHT_DRIZZLE:
+                       return "THUNDERSTORM_WITH_LIGHT_DRIZZLE";
+
+               case THUNDERSTORM_WITH_DRIZZLE:
+                       return "THUNDERSTORM_WITH_DRIZZLE";
+
+               case THUNDERSTORM_WITH_HEAVY_DRIZZLE:
+                       return "THUNDERSTORM_WITH_HEAVY_DRIZZLE";
+
+               case LIGHT_INTENSITY_DRIZZLE:
+                       return "LIGHT_INTENSITY_DRIZZLE";
+
+               case DRIZZLE:
+                       return "DRIZZLE";
+
+               case HEAVY_INTENSITY_DRIZZLE:
+                       return "HEAVY_INTENSITY_DRIZZLE";
+
+               case LIGHT_INTENSITY_DRIZZLE_RAIN:
+                       return "LIGHT_INTENSITY_DRIZZLE_RAIN";
+
+               case DRIZZLE_RAIN:
+                       return "DRIZZLE_RAIN";
+
+               case HEAVY_INTENSITY_DRIZZLE_RAIN:
+                       return "HEAVY_INTENSITY_DRIZZLE_RAIN";
+
+               case SHOWER_RAIN_AND_DRIZZLE:
+                       return "SHOWER_RAIN_AND_DRIZZLE";
+
+               case HEAVY_SHOWER_RAIN_AND_DRIZZLE:
+                       return "HEAVY_SHOWER_RAIN_AND_DRIZZLE";
+
+               case SHOWER_DRIZZLE:
+                       return "SHOWER_DRIZZLE";
+
+               case LIGHT_RAIN:
+                       return "LIGHT_RAIN";
+
+               case MODERATE_RAIN:
+                       return "MODERATE_RAIN";
+
+               case HEAVY_INTENSITY_RAIN:
+                       return "HEAVY_INTENSITY_RAIN";
+
+               case VERY_HEAVY_RAIN:
+                       return "VERY_HEAVY_RAIN";
+
+               case EXTREME_RAIN:
+                       return "EXTREME_RAIN";
+
+               case FREEZING_RAIN:
+                       return "FREEZING_RAIN";
+
+               case LIGHT_INTENSITY_SHOWER_RAIN:
+                       return "LIGHT_INTENSITY_SHOWER_RAIN";
+
+               case SHOWER_RAIN:
+                       return "SHOWER_RAIN";
+
+               case HEAVY_INTENSITY_SHOWER_RAIN:
+                       return "HEAVY_INTENSITY_SHOWER_RAIN";
+
+               case RAGGED_SHOWER_RAIN:
+                       return "RAGGED_SHOWER_RAIN";
+
+               case LIGHT_SNOW:
+                       return "LIGHT_SNOW";
+
+               case SNOW:
+                       return "SNOW";
+
+               case HEAVY_SNOW:
+                       return "HEAVY_SNOW";
+
+               case SLEET:
+                       return "SLEET";
+
+               case SHOWER_SLEET:
+                       return "SHOWER_SLEET";
+
+               case LIGHT_RAIN_AND_SNOW:
+                       return "LIGHT_RAIN_AND_SNOW";
+
+               case RAIN_AND_SNOW:
+                       return "RAIN_AND_SNOW";
+
+               case LIGHT_SHOWER_SNOW:
+                       return "LIGHT_SHOWER_SNOW";
+
+               case SHOWER_SNOW:
+                       return "SHOWER_SNOW";
+
+               case HEAVY_SHOWER_SNOW:
+                       return "HEAVY_SHOWER_SNOW";
+
+               case MIST:
+                       return "MIST";
+
+               case SMOKE:
+                       return "SMOKE";
+
+               case HAZE:
+                       return "HAZE";
+
+               case SAND_DUST_WHIRLS:
+                       return "SAND_DUST_WHIRLS";
+
+               case FOG:
+                       return "FOG";
+
+               case SAND:
+                       return "SAND";
+
+               case DUST:
+                       return "DUST";
+
+               case VOLCANIC_ASH:
+                       return "VOLCANIC_ASH";
+
+               case SQUALLS:
+                       return "SQUALLS";
+
+               case TORNADO:
+                       return "TORNADO";
+
+               case CLEAR_SKY:
+                       return "CLEAR_SKY";
+
+               case FEW_CLOUDS:
+                       return "FEW_CLOUDS";
+
+               case SCATTERED_CLOUDS:
+                       return "SCATTERED_CLOUDS";
+
+               case BROKEN_CLOUDS:
+                       return "BROKEN_CLOUDS";
+
+               case OVERCAST_CLOUDS:
+                       return "OVERCAST_CLOUDS";
+
+               case TROPICAL_STORM:
+                       return "TROPICAL_STORM";
+
+               case HURRICANE:
+                       return "HURRICANE";
+
+               case COLD:
+                       return "COLD";
+
+               case HOT:
+                       return "HOT";
+
+               case WINDY:
+                       return "WINDY";
+
+               case HAIL:
+                       return "HAIL";
+
+               case CALM:
+                       return "CALM";
+
+               case LIGHT_BREEZE:
+                       return "LIGHT_BREEZE";
+
+               case GENTLE_BREEZE:
+                       return "GENTLE_BREEZE";
+
+               case MODERATE_BREEZE:
+                       return "MODERATE_BREEZE";
+
+               case FRESH_BREEZE:
+                       return "FRESH_BREEZE";
+
+               case STRONG_BREEZE:
+                       return "STRONG_BREEZE";
+
+               case HIGH_WIND_NEAR_GALE:
+                       return "HIGH_WIND_NEAR_GALE";
+
+               case GALE:
+                       return "GALE";
+
+               case SEVERE_GALE:
+                       return "SEVERE_GALE";
+
+               case STORM:
+                       return "STORM";
+
+               case VIOLENT_STORM:
+                       return "VIOLENT_STORM";
+
+               default:
+                       return "UNKNOWN";
+               }
+       }
+
+
+       /** Method to change the weather condition code into a WeatherConditions enum type
+        *
+        *   @param cond [int], weather condition code.
+        *
+        *   @return [WeatherConditions] weather conditions enum type.
+        */
+       private WeatherConditions getWeatherConditionForCode(int code) {
+               switch (code) {
+               case 200:
+                       return WeatherConditions.THUNDERSTORM_WITH_LIGHT_RAIN;
+
+               case 201:
+                       return WeatherConditions.THUNDERSTORM_WITH_RAIN;
+
+               case 202:
+                       return WeatherConditions.THUNDERSTORM_WITH_HEAVY_RAIN;
+
+               case 210:
+                       return WeatherConditions.LIGHT_THUNDERSTORM;
+
+               case 211:
+                       return WeatherConditions.THUNDERSTORM;
+
+               case 212:
+                       return WeatherConditions.HEAVY_THUNDERSTORM;
+
+               case 221:
+                       return WeatherConditions.RAGGED_THUNDERSTORM;
+
+               case 230:
+                       return WeatherConditions.THUNDERSTORM_WITH_LIGHT_DRIZZLE;
+
+               case 231:
+                       return WeatherConditions.THUNDERSTORM_WITH_DRIZZLE;
+
+               case 232:
+                       return WeatherConditions.THUNDERSTORM_WITH_HEAVY_DRIZZLE;
+
+               case 300:
+                       return WeatherConditions.LIGHT_INTENSITY_DRIZZLE;
+
+               case 301:
+                       return WeatherConditions.DRIZZLE;
+
+               case 302:
+                       return WeatherConditions.HEAVY_INTENSITY_DRIZZLE;
+
+               case 310:
+                       return WeatherConditions.LIGHT_INTENSITY_DRIZZLE_RAIN;
+
+               case 311:
+                       return WeatherConditions.DRIZZLE_RAIN;
+
+               case 312:
+                       return WeatherConditions.HEAVY_INTENSITY_DRIZZLE_RAIN;
+
+               case 313:
+                       return WeatherConditions.SHOWER_RAIN_AND_DRIZZLE;
+
+               case 314:
+                       return WeatherConditions.HEAVY_SHOWER_RAIN_AND_DRIZZLE;
+
+               case 321:
+                       return WeatherConditions.SHOWER_DRIZZLE;
+
+               case 500:
+                       return WeatherConditions.LIGHT_RAIN;
+
+               case 501:
+                       return WeatherConditions.MODERATE_RAIN;
+
+               case 502:
+                       return WeatherConditions.HEAVY_INTENSITY_RAIN;
+
+               case 503:
+                       return WeatherConditions.VERY_HEAVY_RAIN;
+
+               case 504:
+                       return WeatherConditions.EXTREME_RAIN;
+
+               case 511:
+                       return WeatherConditions.FREEZING_RAIN;
+
+               case 520:
+                       return WeatherConditions.LIGHT_INTENSITY_SHOWER_RAIN;
+
+               case 521:
+                       return WeatherConditions.SHOWER_RAIN;
+
+               case 522:
+                       return WeatherConditions.HEAVY_INTENSITY_SHOWER_RAIN;
+
+               case 531:
+                       return WeatherConditions.RAGGED_SHOWER_RAIN;
+
+               case 600:
+                       return WeatherConditions.LIGHT_SNOW;
+
+               case 601:
+                       return WeatherConditions.SNOW;
+
+               case 602:
+                       return WeatherConditions.HEAVY_SNOW;
+
+               case 611:
+                       return WeatherConditions.SLEET;
+
+               case 612:
+                       return WeatherConditions.SHOWER_SLEET;
+
+               case 615:
+                       return WeatherConditions.LIGHT_RAIN_AND_SNOW;
+
+               case 616:
+                       return WeatherConditions.RAIN_AND_SNOW;
+
+               case 620:
+                       return WeatherConditions.LIGHT_SHOWER_SNOW;
+
+               case 621:
+                       return WeatherConditions.SHOWER_SNOW;
+
+               case 622:
+                       return WeatherConditions.HEAVY_SHOWER_SNOW;
+
+               case 701:
+                       return WeatherConditions.MIST;
+
+               case 711:
+                       return WeatherConditions.SMOKE;
+
+               case 721:
+                       return WeatherConditions.HAZE;
+
+               case 731:
+                       return WeatherConditions.SAND_DUST_WHIRLS;
+
+               case 741:
+                       return WeatherConditions.FOG;
+
+               case 751:
+                       return WeatherConditions.SAND;
+
+               case 761:
+                       return WeatherConditions.DUST;
+
+               case 762:
+                       return WeatherConditions.VOLCANIC_ASH;
+
+               case 771:
+                       return WeatherConditions.SQUALLS;
+
+               case 781:
+                       return WeatherConditions.TORNADO;
+
+               case 800:
+                       return WeatherConditions.CLEAR_SKY;
+
+               case 801:
+                       return WeatherConditions.FEW_CLOUDS;
+
+               case 802:
+                       return WeatherConditions.SCATTERED_CLOUDS;
+
+               case 803:
+                       return WeatherConditions.BROKEN_CLOUDS;
+
+               case 804:
+                       return WeatherConditions.OVERCAST_CLOUDS;
+
+               case 900:
+                       return WeatherConditions.TORNADO;
+
+               case 901:
+                       return WeatherConditions.TROPICAL_STORM;
+
+               case 902:
+                       return WeatherConditions.HURRICANE;
+
+               case 903:
+                       return WeatherConditions.COLD;
+
+               case 904:
+                       return WeatherConditions.HOT;
+
+               case 905:
+                       return WeatherConditions.WINDY;
+
+               case 906:
+                       return WeatherConditions.HAIL;
+
+               case 951:
+                       return WeatherConditions.CALM;
+
+               case 952:
+                       return WeatherConditions.LIGHT_BREEZE;
+
+               case 953:
+                       return WeatherConditions.GENTLE_BREEZE;
+
+               case 954:
+                       return WeatherConditions.MODERATE_BREEZE;
+
+               case 955:
+                       return WeatherConditions.FRESH_BREEZE;
+
+               case 956:
+                       return WeatherConditions.STRONG_BREEZE;
+
+               case 957:
+                       return WeatherConditions.HIGH_WIND_NEAR_GALE;
+
+               case 958:
+                       return WeatherConditions.GALE;
+
+               case 959:
+                       return WeatherConditions.SEVERE_GALE;
+
+               case 960:
+                       return WeatherConditions.STORM;
+
+               case 961:
+                       return WeatherConditions.VIOLENT_STORM;
+
+               case 962:
+                       return WeatherConditions.HURRICANE;
+
+               default:
+                       return WeatherConditions.UNKNOWN;
+               }
+       }
+}
\ No newline at end of file
diff --git a/benchmarks/IrrigationController/IrrigationController.config b/benchmarks/IrrigationController/IrrigationController.config
new file mode 100644 (file)
index 0000000..a53b2c1
--- /dev/null
@@ -0,0 +1 @@
+ADDITIONAL_ZIP_FILE=Yes
diff --git a/benchmarks/IrrigationController/IrrigationController.java b/benchmarks/IrrigationController/IrrigationController.java
new file mode 100644 (file)
index 0000000..4bf833b
--- /dev/null
@@ -0,0 +1,521 @@
+package IrrigationController;
+// Standard Java Packages
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+
+// RMI packages
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+
+// IoT Runtime Packages
+import iotruntime.slave.IoTSet;
+import iotruntime.slave.IoTRelation;
+import iotruntime.slave.IoTAddress;
+//import iotcode.annotation.*;
+
+// IoT Driver Packages
+import iotcode.interfaces.*;
+import iotcode.WeatherPhoneGateway.*;
+
+// Checker annotations
+import iotchecker.qual.*;
+
+public class IrrigationController extends UnicastRemoteObject implements WeatherGatewayCallback {
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Constants
+       **
+       *******************************************************************************************************************************************/
+       // private static final int NUMBER_OF_TIMES_PER_WEEK_TO_WATER = 2;
+       //TODO: Change these back to normal - this is just for testing to make it awake all the time
+//     private static final int TIME_HOURS_TO_WATER_GRASS = 7;         // 7 am
+       private static final int TIME_HOURS_TO_WATER_GRASS = 3;
+//     private static final int TIME_MINUTES_TO_WATER_GRASS = 30;      // 30 minutes
+       private static final int TIME_MINUTES_TO_WATER_GRASS = 30;
+//     private static final int TIME_TO_RECOVER_GRASS_FOR = 8 * 24 * 60 * 60;  // 8 days
+       private static final int TIME_TO_RECOVER_GRASS_FOR = 10;
+//     private static final int TIME_TO_HIBERNATE_GRASS_FOR = 30 * 24 * 60 * 60;               // 30 days
+       private static final int TIME_TO_HIBERNATE_GRASS_FOR = 10;
+       public static final int CAMERA_FPS = 15;                                                                                                        // In frames per second
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Variables
+       **
+       *******************************************************************************************************************************************/
+       private int dayOfLastCheck = -1;
+       private int monthOfLastCheck = -1;
+       private boolean isInHibernationRecoveryMode = false;
+       private Date hibernationRecoveryModeStartDate = null;
+       private boolean isHibernationMode = false;
+       private Date hibernationModeStartDate = null;
+       private List<@LocalRemote LawnState> lawns = new ArrayList<@LocalRemote LawnState>();
+       private WeatherGrabber weatherGrabber = null;
+
+       // used to block until gui is done and the settings are ready to be polled
+       private AtomicBoolean waitingForInterface = new AtomicBoolean(true);
+
+       // the settings from the interface, used to setup the system
+       private double inchesPerWeek = 0;
+       private int weatherZipCode = 0;
+       private int daysToWaterOn = 0;
+       private List<Double> inchesPerMinute;
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  IoT Sets and Relations
+       **
+       *******************************************************************************************************************************************/
+       @config private IoTSet<IoTAddress> weatherDataAddresses;
+       @config private IoTSet<IoTAddress> weatherDataAddressMain;
+       @config private IoTSet<@NonLocalRemote WeatherGateway> gwSet;
+       @config private IoTSet<@NonLocalRemote Lawn> lawnSet;
+       @config private IoTSet<@NonLocalRemote MoistureSensor> moistureSensorsSet;
+       @config private IoTSet<@NonLocalRemote Camera> cameraSet;
+       @config private IoTRelation<@NonLocalRemote Lawn, @NonLocalRemote Camera> lawnCameraRelation;
+       @config private IoTRelation<@NonLocalRemote Lawn, @NonLocalRemote Sprinkler> lawnSprinklerRelation;
+       @config private IoTRelation<@NonLocalRemote Lawn, @NonLocalRemote MoistureSensor> lawnMoistureSensorRelation;
+
+
+       public IrrigationController() throws RemoteException {
+
+       }
+
+       /*******************************************************************************************************************************************
+       **
+       **  Public Methods
+       **
+       *******************************************************************************************************************************************/
+
+
+       /** Method to set whether the controller should maintain the lawns in hibernation mode
+        *   or in normal mode.  Lawns should be put in hibernation mode in drought conditions
+        *
+        *   @param _hibMode [boolean] set the hibernation mode for this lawn controllers (true = hibernation)
+        *
+        *   @return [void] None.
+        */
+       public void setHibernationMode(boolean _hibMode) {
+
+               // change hibernation mode status
+               isHibernationMode = _hibMode;
+
+               // set the start date for when we started this hibernation mode
+               if (_hibMode) {
+
+                       // make sure we dont reset this cycle
+                       if (!isHibernationMode) {
+                               hibernationModeStartDate = new Date();
+                       }
+               } else {
+                       // reset all hibernation stuff
+                       hibernationModeStartDate = null;
+                       isInHibernationRecoveryMode = false;
+                       hibernationRecoveryModeStartDate = null;
+               }
+       }
+
+       /** Method to start the controller and run the main control loop
+        *
+        *   @return [void] None.
+        */
+       public void init() throws RemoteException {
+
+               // initialize the controller
+               initController();
+               System.out.println("Initialized controller!");
+
+               // Main Loop
+               while (true) {
+
+                       // get the current time of day (date and time)
+                       Date currentDate = new Date();
+
+                       // get the epoch time till the beginning of the day
+                       Date beginingOfToday = new Date(currentDate.getYear(), currentDate.getMonth(), currentDate.getDate());
+
+                       // calculate the seconds since the start of the day.
+                       long secondsSinceStartOfDay = (currentDate.getTime() - beginingOfToday.getTime()) / 1000;
+
+                       // Seconds since the start of the day to start the watering
+                       long secondsForWateringStart = (TIME_HOURS_TO_WATER_GRASS * 3600) + (TIME_MINUTES_TO_WATER_GRASS * 60);
+
+//                     System.out.println("beginingOfToday " + beginingOfToday);
+//                     System.out.println("secondsSinceStartOfDay " + secondsSinceStartOfDay);
+//                     System.out.println("secondsForWateringStart " + secondsForWateringStart);
+
+                       // check if the current time is within the start watering interval
+                       /*if ((secondsSinceStartOfDay < secondsForWateringStart) || (secondsSinceStartOfDay > (secondsForWateringStart + (60 * 60)))) {
+                               System.out.println("Sleep for 10 minutes.. ");
+                               try {
+                                       //Thread.sleep(10 * 60 * 1000);                                         // sleep for 10 minutes
+                                       Thread.sleep(10);                                               // sleep for 10 seconds
+                               } catch (Exception e) {
+                                       e.printStackTrace();
+                               }
+
+                               continue;
+                       }*/
+
+                       // check if we already checked if we should water today
+                       // we only need to do this once per day
+                       /*if ((dayOfLastCheck == currentDate.getDate()) && (monthOfLastCheck == currentDate.getMonth())) {
+                               System.out.println("Sleep for 1 hour...");
+                               try {
+                                       Thread.sleep(60 * 60 * 1000);                                           // sleep for an hour
+                               } catch (Exception e) {
+                                       e.printStackTrace();
+                               }
+
+                               continue;
+                       }*/
+
+                       // we decided to check if we should water today so save the fact that we chose to water on this day
+                       dayOfLastCheck = currentDate.getDate();
+                       monthOfLastCheck = currentDate.getMonth();
+
+                       // update the lawn states everyday
+                       for (@LocalRemote LawnState ls : lawns) {
+                               ls.updateLawn(currentDate);
+                       }
+                       // check if we are in hibernation mode and do the correct loop action
+                       if (isHibernationMode) {
+//                             System.out.println("Hibernation mode!");
+                               // If we are in hibernation mode then use the hibernation loop code
+                               wateringHibernationLoop(currentDate);
+                       } else {
+//                             System.out.println("Normal mode!");
+                               // Using the normal watering loop code
+                               wateringNormalLoop(currentDate);
+                       }
+               }
+       }
+
+
+       /** Callback method for when the information is retrieved.
+        *
+        * @param _wgw [WeatherGateway].
+        * @return [void] None.
+        */
+       public void informationRetrieved(@NonLocalRemote WeatherGateway _wgw) {
+
+//             System.out.println("DEBUG: Information is retrieved from phone!!!");
+               try {
+                       // get the parameters that the interface (phone app) reads from the user
+                       inchesPerWeek = _wgw.getInchesPerWeek();
+                       weatherZipCode = _wgw.getWeatherZipCode();
+                       daysToWaterOn = _wgw.getDaysToWaterOn();
+                       inchesPerMinute.add(_wgw.getInchesPerMinute());
+               } catch(RemoteException ex) {
+                       ex.printStackTrace();
+               }
+
+               // the gui is done so release the spin wait that was waiting for the gui
+               waitingForInterface.set(false);
+       }
+
+       /*******************************************************************************************************************************************
+       **
+       **  Helper Methods
+       **
+       *******************************************************************************************************************************************/
+
+
+       /** Method to initialize the controller variables and all the drivers and such
+        *
+        *   @return [void] None.
+        */
+       private void initController() throws RemoteException {
+
+               // Setup the weather grabber object with the correct address of the weather api
+               Iterator it = weatherDataAddresses.iterator();
+               weatherGrabber = new WeatherGrabber((IoTAddress)it.next());
+
+               // Initialize inchesPerMinute
+               inchesPerMinute = new ArrayList<Double>();
+
+               // We setup a Gateway object to get information from the phone app
+               for (@NonLocalRemote WeatherGateway gw : gwSet.values()) {
+                       gw.init();
+                       gw.registerCallback(this);
+                       gw.start();
+               }
+
+               System.out.println("DEBUG: Waiting for phone to send weather information");
+               while (waitingForInterface.get()) {
+                       try {
+                               Thread.sleep(1000);
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               // TODO: Use a phone input interface later
+               //inchesPerWeek = 20.00;
+               //weatherZipCode = 92612;
+               //daysToWaterOn = 255;
+               //inchesPerMinute.add(1.50);
+
+               System.out.println("DEBUG: inchesPerWeek: " + inchesPerWeek);
+               System.out.println("DEBUG: weatherZipCode: " + weatherZipCode);
+               System.out.println("DEBUG: daysToWaterOn: " + daysToWaterOn);
+               System.out.println("DEBUG: inchesPerMinute: " + inchesPerMinute.get(0));
+
+               // set the zip code and the the number of days of the weather grabber
+               // here the number of days is set to the max that the grabber supports
+               weatherGrabber.setZipcode(weatherZipCode);
+               weatherGrabber.setNumberOfDays(16);
+
+               // Setup the cameras, start them all and assign each one a motion detector
+               for (@NonLocalRemote Camera cam : cameraSet.values()) {
+                       try {
+                               // initialize the camera, might need to setup some stuff internally
+                               cam.init();
+
+                               // set the camera parameters.
+                               cam.setFPS(CAMERA_FPS);
+                               cam.setResolution(Camera.Resolution.RES_VGA);
+
+                               // Start the camera (example is start the HTTP stream if it is a network camera)
+                               cam.start();
+                               System.out.println("DEBUG: Init camera! " + cam.toString());
+                       } catch (RemoteException e) {
+                               e.printStackTrace();
+                       }
+
+               }
+
+               // counter so that we can match the lawn inches per min data with the specific lawn
+               int counter = 0;
+               for (@NonLocalRemote Lawn l : lawnSet.values()) {
+                       // create a motionDetector for each lawn object
+                       @LocalRemote MotionDetection mo = new @LocalRemote MotionDetection(12, 0.5f, 10, 10);
+
+                       // for 1 camera, if there are any then register the camera for that lawn
+                       HashSet<@NonLocalRemote Camera> cameras = lawnCameraRelation.get(l);
+                       System.out.println("DEBUG: Camera.size(): " + cameras.size());
+                       if (cameras.size() >= 1) {
+
+                               // we only need 1 camera per lawn so get the first one in the list
+                               Iterator camIt = cameras.iterator();
+                               @NonLocalRemote Camera cam = (@NonLocalRemote Camera)camIt.next();
+                               System.out.println("DEBUG: Registering callback to camera: " + cam.toString());
+                               try {
+                                       // setup the callback
+                                       cam.registerCallback(mo);
+                               } catch (RemoteException e) {
+                                       e.printStackTrace();
+                               }
+                       }
+
+                       // we also only need 1 sprinkler controller per lawn so grab the first one
+                       HashSet<@NonLocalRemote Sprinkler> sprinklers = lawnSprinklerRelation.get(l);
+                       Iterator sprinklersIt = sprinklers.iterator();
+                       @NonLocalRemote Sprinkler spr = (@NonLocalRemote Sprinkler)sprinklersIt.next();
+
+                       // init the sprinkler controller, do it here since it only needs to be done once per controller
+                       try {
+                               spr.init();
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+                       System.out.println("DEBUG: Init sprinkler: " + spr.toString());
+
+                       // get and init the moisture sensors for this specific lawn
+                       HashSet<@NonLocalRemote MoistureSensor> sensors = lawnMoistureSensorRelation.get(l);
+                       for (@NonLocalRemote MoistureSensor sen : sensors) {
+                               System.out.println("DEBUG: Init sensors: " + sen.toString());
+                               try {
+                                       sen.init();
+                               } catch (Exception e) {
+                                       e.printStackTrace();
+                               }
+                       }
+
+                       // create the lawn objects
+                       System.out.println("DEBUG: Creating a LawnState object");
+                       @LocalRemote LawnState ls = 
+                               new @LocalRemote LawnState(l, daysToWaterOn, mo, inchesPerMinute.get(counter), inchesPerWeek, spr, counter, sensors);
+                       lawns.add(ls);
+
+                       // dont forget to increment the counter
+                       counter++;
+               }
+       }
+
+       /** Main loop for when the controller is watering the lawns under normal conditions, not in hibernation mode
+        *
+        *   @param _currentDate [Date] current date
+        *
+        *   @return [void] None.
+        */
+       private void wateringNormalLoop(Date _currentDate) {
+
+               // get the weather data for the next little bit
+               List<DayWeather> weatherData = weatherGrabber.getWeatherData();
+               // TODO: Replace this with the WeatherGrabber.getWeatherData() above
+//             List<DayWeather> weatherData = new ArrayList<DayWeather>();
+
+               // Go through each lawn and check if we should water it and if we should, water it
+               for (@LocalRemote LawnState ls : lawns) {
+
+                       // water for specific lawn
+                       waterLawn(ls, _currentDate, weatherData);
+               }
+       }
+
+       /** Main loop for when the controller is watering the lawns in hibernation mode
+        *
+        *   @param _currentDate [Date] current date
+        *
+        *   @return [void] None.
+        */
+       private void wateringHibernationLoop(Date _currentDate) {
+
+               // if we are in recovery mode then run the recovery action
+               // we are still in hibernation mode but we need to recover the grass
+               if (isInHibernationRecoveryMode) {
+//                     System.out.println("DEBUG: Recovery mode!");
+                       hibernationRecoveryLoop(_currentDate);
+                       return;
+               }
+
+               // check if we should enter recovery mode
+               long elapsedTime = (_currentDate.getTime() - hibernationModeStartDate.getTime()) / 1000;
+               if (elapsedTime >= TIME_TO_HIBERNATE_GRASS_FOR) {
+
+                       // start recovery mode
+                       isInHibernationRecoveryMode = true;
+                       hibernationRecoveryModeStartDate = null;
+//                     System.out.println("DEBUG: We enter recovery mode for the first time!");
+                       // first cycle of recovery
+                       hibernationRecoveryLoop(_currentDate);
+                       return;
+               }
+
+               // get the weather data for the next little bit
+               List<DayWeather> weatherData = weatherGrabber.getWeatherData();
+
+               // Go through each lawn and check if we should water it and if we should, water it
+               for (@LocalRemote LawnState ls : lawns) {
+
+                       boolean lawnHasMotion = ls.lawnHasSufficientMotion();
+
+                       // there is no motion on the lawn so no need to water it
+                       if (!lawnHasMotion) {
+                               continue;
+                       }
+//                     System.out.println("DEBUG: We water the lawn! (wateringHibernationLoop)");
+                       // water specific lawn since it has motion
+                       waterLawn(ls, _currentDate, weatherData);
+               }
+       }
+
+
+       /** Main loop for when the controller is watering the lawns in hibernation mode
+        *
+        *   @param _currentDate [Date] current date
+        *
+        *   @return [void] None.
+        */
+       private void hibernationRecoveryLoop(Date _currentDate) {
+
+               // start recovery mode if it wasnt started yet
+               if (hibernationRecoveryModeStartDate == null) {
+                       hibernationRecoveryModeStartDate = _currentDate;
+               }
+
+               // time since this mode was started
+               long elapsedTime = (_currentDate.getTime() - hibernationRecoveryModeStartDate.getTime()) / 1000;
+
+               // we have been in recovery mode long enough
+               if (elapsedTime >= TIME_TO_RECOVER_GRASS_FOR) {
+
+//                     System.out.println("DEBUG: We have been in recovery mode long enough!");
+                       // reset the recovery mode
+                       isInHibernationRecoveryMode = false;
+                       hibernationRecoveryModeStartDate = null;
+
+                       // revived grass so restart the grass hibernation cycle
+                       hibernationModeStartDate = _currentDate;
+
+                       // do the hibernation loop since we are no longer in recovery mode
+                       wateringHibernationLoop(_currentDate);
+                       return;
+               }
+
+
+               // if we got here then we are trying to recover the grass
+
+               // get the weather data for the next little bit
+               List<DayWeather> weatherData = weatherGrabber.getWeatherData();
+
+               // Go through each lawn and check if we should water it and if we should, water it
+               for (@LocalRemote LawnState ls : lawns) {
+
+//                     System.out.println("DEBUG: We water the lawn! (hibernationRecoveryLoop)");
+                       // water specific lawn since it has motion
+                       waterLawn(ls, _currentDate, weatherData);
+               }
+
+       }
+
+
+       /** Method for watering a specific lawn if it needs to be watered
+        *
+        *   @param _ls [LawnState] lawn to water
+        *   @param _currentDate [Date] current date
+        *   @param _weatherData [List<DayWeather>] latest weather data
+        *
+        *   @return [void] None.
+        */
+       private void waterLawn(@LocalRemote LawnState _ls, Date _currentDate,  List<DayWeather> _weatherData) {
+
+               // check if today or tomorrow is a wet day
+               boolean todayIsWetDay = _weatherData.get(0).getIsWetDay();
+               boolean tomorrowIsWetDay = _weatherData.get(1).getIsWetDay();
+               // TODO: Remove this later - hack the values for now!!!
+//             boolean todayIsWetDay = false;
+//             boolean tomorrowIsWetDay = false;
+
+               // lawn cannot wait anymore for water so water not
+               boolean lawnNeedsWaterNow = _ls.needsWateringUrgently(_currentDate);
+               if (lawnNeedsWaterNow) {
+                       System.out.println("DEBUG: Need water now!!!");
+                       System.out.println("DEBUG: Is wet day? " + todayIsWetDay);
+                       System.out.println("DEBUG: Tomorrow is wet day? " + tomorrowIsWetDay);
+                       // if it is not going to rain today then water the lawn
+                       // TODO: Put this back to uncommented!!! Only for testing!!!
+//                     if (!todayIsWetDay) {
+                               _ls.waterLawn(_currentDate);
+//                     }
+                       return;
+               }
+
+               // check if this lawn needs watering based on watering algoritm/sensors/ext
+               boolean shouldWaterLawn = _ls.needsWatering(_currentDate);
+
+               // should not water this lawn then just skip to the next lawn
+               if (!shouldWaterLawn) {
+                       return;
+               }
+
+               // it is going to rain soon so wait it out.
+               // Grass is not in critical condition so it can wait a bit.
+               if (todayIsWetDay || tomorrowIsWetDay) {
+                       return;
+               }
+
+               // if we got here then we need to water the lawn
+               _ls.waterLawn(_currentDate);
+       }
+}
+
diff --git a/benchmarks/IrrigationController/LawnState.java b/benchmarks/IrrigationController/LawnState.java
new file mode 100644 (file)
index 0000000..c6e0a09
--- /dev/null
@@ -0,0 +1,543 @@
+package IrrigationController;
+
+// Standard Java Packages
+import java.util.Date;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.Map;
+
+// RMI packages
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+
+// IoT Driver Packages
+import iotcode.interfaces.*;
+
+// Checker annotations
+import iotchecker.qual.*;
+
+/** Class LawnState that represents the state of the lawn, also help calculate if the lawn needs to be watered.
+ *
+ * @author      Ali Younis <ayounis @ uci.edu>
+ * @version     1.0
+ * @since       2016-04-04
+ */
+
+public class LawnState extends UnicastRemoteObject implements MotionDetectionCallback, MoistureSensorCallback {
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Constants
+       **
+       *******************************************************************************************************************************************/
+       private static final long MAX_TIME_BETWEEN_WATERING_SESSIONS = 4 * 24 * 60 * 60;        // 5 days
+       private static final int MAX_DAYS_RAINED_RECORD = 20;
+       private static final int RAINED_RECENTLY_DAYS_INTERVAL = 1;
+       private static final long TWENTY_FIVE_HOURS = 25 * 60 * 60;
+       private static final long TWO_HOURS = 2 * 60 * 60;
+
+       private static final long NEW_MOTION_THRESHOLD = 2 * 60;        // 2 minutes
+       private static final long AMOUNT_OF_MOTION_FOR_ACTIVE = 60 * 60;        // 1 hour
+       private static final long AMOUNT_OF_TIME_FOR_ACTIVE_TO_HOLD = 7 * 24 * 60 * 60;         // 1 week
+
+       private static final double MOISTURE_LEVEL_FOR_NORMAL_WATERING = 25;            // Percentage
+       private static final double MOISTURE_LEVEL_FOR_EMERGENCY_WATERING = 5;  // Percentage
+       private static final double MOISTURE_LEVEL_FOR_NO_WATERING = 80;        // Percentage
+
+       /*******************************************************************************************************************************************
+       **
+       **  Variables
+       **
+       *******************************************************************************************************************************************/
+       private boolean isInHibernationMode = false;
+       private Date lastTimeWatered = null;
+       private boolean didWaterSinceLastSchedualedDate = false;
+       private List<Date> daysRained = new ArrayList<Date>();
+       private int daysToWaterOn = 0;
+       @NonLocalRemote private Lawn iotLawnObject;
+       @NonLocalRemote private MotionDetection motionDetector;
+       private double inchesPerMinute = 0;
+       private double inchesPerWeek = 0;
+       private double timePerWatering = 0;
+       private double timePerWeek = 0;
+       private double timeWateredSoFar = 0;
+       @NonLocalRemote private Sprinkler sprinkler;
+       private int zone = 0;
+       private Date lastMotionDetectedTime = null;
+       private Date startOfThisMotion = null;
+       private Date lastUpdateDate = null;
+       private Lock mutex = new ReentrantLock();
+       private long totalMotionOnLawn = 0;
+       private long numberOfMotionsOnLawnToday = 0;
+       private boolean lawnIsActive = false;
+       private Date lawnBecameActiceDate = null;
+       private Map<@NonLocalRemote MoistureSensor, Double> moistureSensorReadings = 
+               new ConcurrentHashMap<@NonLocalRemote MoistureSensor, Double>();
+       private Map<@NonLocalRemote MoistureSensor, Date> moistureSensorUpdateTimes = 
+               new ConcurrentHashMap<@NonLocalRemote MoistureSensor, Date>();
+
+
+       // 0th bit = Monday, 1th bit = Tuesday ext
+       public LawnState(@NonLocalRemote Lawn _l, int _daysToWaterOn, @NonLocalRemote MotionDetection _mo, 
+                                       double _inchesPerMinute, double _inchesPerWeek, @NonLocalRemote Sprinkler _sprinkler, 
+                                       int _zone, Set<@NonLocalRemote MoistureSensor> _moistureSensors) throws RemoteException {
+               iotLawnObject = _l;
+               daysToWaterOn = _daysToWaterOn;
+               inchesPerMinute = _inchesPerMinute;
+               inchesPerWeek = _inchesPerWeek;
+               sprinkler = _sprinkler;
+               zone = _zone;
+
+               // register the callback with self
+               motionDetector = _mo;
+               _mo.registerCallback(this);
+
+               // register callback to self
+               for (@NonLocalRemote MoistureSensor sen : _moistureSensors) {
+
+                       try {
+                               sen.registerCallback(this);
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+
+               // parse the days that we are going to water on
+               int numberOfDaysForWatering = 0;
+               for (int i = 0; i < 7; i++) {
+                       if ((daysToWaterOn & (1 << i)) > 0) {
+                               numberOfDaysForWatering++;
+                       }
+               }
+
+               // calculate lawn watering water amounts
+               timePerWeek = _inchesPerWeek / _inchesPerMinute;
+               timePerWatering = timePerWeek / (double)numberOfDaysForWatering;
+       }
+
+       /*******************************************************************************************************************************************
+       **
+       **  Public Methods
+       **
+       *******************************************************************************************************************************************/
+
+
+       /** Method to update the lawn state, updates lawn activity state based on activity timeout
+        *
+        *   @param _currentDate  [Date], the current date and time.
+        *
+        *   @return [void] None.
+        */
+       public void updateLawn(Date _currentDate) {
+               if (lastUpdateDate != null) {
+
+                       // check if we already did an update today
+                       if ((lastUpdateDate.getDate() == _currentDate.getDate())
+                                       && (lastUpdateDate.getMonth() == _currentDate.getMonth())
+                                       && (lastUpdateDate.getYear() == _currentDate.getYear())) {
+                               return;
+                       }
+               }
+
+               lastUpdateDate = _currentDate;
+
+               // lawn was active at some time so check if it can be deemed inactive because
+               // time has passed and it has not been active in that time
+               if (lawnBecameActiceDate != null) {
+                       long timeElapsed = (_currentDate.getTime() - lawnBecameActiceDate.getTime()) / 1000;
+
+                       if (timeElapsed >= AMOUNT_OF_TIME_FOR_ACTIVE_TO_HOLD) {
+                               lawnBecameActiceDate = null;
+                               lawnIsActive = false;
+                       }
+               }
+
+
+               // check activity of lawn
+               boolean isActiveLawn = false;
+               try {
+                       mutex.lock();
+                       if (totalMotionOnLawn >= AMOUNT_OF_MOTION_FOR_ACTIVE) {
+                               isActiveLawn = true;
+                       }
+
+                       // reset motion counters
+                       totalMotionOnLawn = 0;
+                       numberOfMotionsOnLawnToday = 0;
+
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+               finally {
+                       mutex.unlock();
+               }
+
+               // update lawn state
+               if (isActiveLawn) {
+                       lawnIsActive = true;
+                       lawnBecameActiceDate = _currentDate;
+               }
+       }
+
+
+       /** Method to test if this lawn is active or not.
+        *
+        *   @return [Boolean] lawn is active.
+        */
+       public boolean lawnHasSufficientMotion() {
+               return lawnIsActive;
+       }
+
+
+       /** Method to test if this lawn should be watered or not right now.
+        *   Lawn urgently needs to be watered right now.
+        *
+        *   @param _currentDate  [Date], the current date and time.
+        *
+        *   @return [Boolean] lawn does need watering.
+        */
+       public boolean needsWateringUrgently(Date _currentDate) {
+
+               // get difference between now and last time watered
+               // TODO: Remove this to uncommented!!! This is only for testing!!!
+/*             long timeElapsed = (_currentDate.getTime() - lastTimeWatered.getTime()) / 1000;
+
+               // needs watering now urgently
+               if (timeElapsed >= MAX_TIME_BETWEEN_WATERING_SESSIONS) {
+                       return true;
+               }
+
+               // calculate the average moisture readings of all the
+               // sensors in this lawn
+               double averageMoistureValue = getAverageMoistureReading();
+
+               // is a valid average
+               if (averageMoistureValue != -1) {
+                       // moisture is very low so we need to water now!
+                       if (averageMoistureValue <= MOISTURE_LEVEL_FOR_EMERGENCY_WATERING) {
+                               return true;
+                       } else if (averageMoistureValue >= MOISTURE_LEVEL_FOR_NO_WATERING) {
+                               // moisture is high so no need to water
+                               return false;
+                       }
+               }
+
+               return false;
+*/
+               double averageMoistureValue = getAverageMoistureReading();
+//             System.out.println("DEBUG: Average moisture value: " + averageMoistureValue);
+
+               return true;
+       }
+
+
+       /** Method to test if this lawn should be watered or not
+        *
+        *   @param _currentDate  [Date], the current date and time.
+        *
+        *   @return [Boolean] lawn does need watering.
+        */
+       public boolean needsWatering(Date _currentDate) {
+
+               // only check if we have watered since the last date
+               if (didWaterSinceLastSchedualedDate) {
+                       // get the day of the week from the date and convert it to be
+                       // 0=Monday, 1=Sunday, ....
+                       int dayOfWeek = _currentDate.getDay();
+                       dayOfWeek = (dayOfWeek - 1) % 7;
+
+                       // Calculate what we should mask out days to water byte to see if it is a 1
+                       int mask = (1 << dayOfWeek);
+
+                       // mask the bye
+                       int shouldWaterToday = daysToWaterOn & mask;
+
+                       // if the post masked data is 0 then we should not water today since that bit was not set to 1
+                       // do not water today
+                       if (shouldWaterToday == 0) {
+                               return false;
+                       }
+
+               }
+
+               // it is a scheduled day so we need to water soon;
+               didWaterSinceLastSchedualedDate = false;
+
+               // check if it rained in the last little bit so there is no need to water this grass right now.
+               if (didRainRecently(_currentDate, RAINED_RECENTLY_DAYS_INTERVAL)) {
+                       return false;
+               }
+
+               // The grass was never watered before so water now
+               if (lastTimeWatered == null) {
+                       return true;
+               }
+
+               // calculate the average moisture readings of all the
+               // sensors in this lawn
+               double averageMoistureValue = getAverageMoistureReading();
+
+               // is a valid average
+               if (averageMoistureValue != -1) {
+                       // moisture is low enough to need to water now
+                       if (averageMoistureValue <= MOISTURE_LEVEL_FOR_NORMAL_WATERING) {
+                               return true;
+                       } else if (averageMoistureValue >= MOISTURE_LEVEL_FOR_NO_WATERING) {
+                               // moisture is high so no need to water
+                               return false;
+                       }
+               }
+
+               // if got here then no condition says we should not water today so we should
+               // water the grass today
+               return true;
+       }
+
+
+       /** Method to get the date of the last time the lawn was watered
+        *
+        *   @return [Date] date of last watering.
+        */
+       public Date getLastTimeWatered() {
+               return lastTimeWatered;
+       }
+
+       /** Method to keep track of the last few times it rained on this lawn
+        *
+        *   @param _dateOfRain  [Date], the date of the rain.
+        *
+        *   @return [void] None.
+        */
+       public void rainedOnDate(Date _dateOfRain) {
+
+               // the grass was technically watered on this day
+               lastTimeWatered = _dateOfRain;
+
+               didWaterSinceLastSchedualedDate = true;
+
+               // it rained on this date
+               daysRained.add(_dateOfRain);
+
+               // only keep the last 20 days that it rained
+               if (daysRained.size() > 20) {
+                       daysRained.remove(0);
+               }
+
+       }
+
+
+       /** Method to water lawn, calculates how much to water and sends water signal to controller
+        *
+        *   @param _currentDate  [Date], the current date and time.
+        *
+        *   @return [void] None.
+        */
+       public void waterLawn(Date _currentDate) {
+               lastTimeWatered = _currentDate;
+               didWaterSinceLastSchedualedDate = true;
+
+               // get the day of the week from the date and convert it to be
+               // 0=Monday, 1=Sunday, ....
+               int dayOfWeek = _currentDate.getDay();
+               dayOfWeek = (dayOfWeek - 1) % 7;
+
+
+               // check if it is the last day to water for this week
+               boolean isLastDay = true;
+               for (int i = 6; i > dayOfWeek; i--) {
+                       int mask = (1 << dayOfWeek);
+
+                       int shouldWaterToday = daysToWaterOn & mask;
+
+                       if (shouldWaterToday != 0) {
+                               isLastDay = false;
+                               break;
+                       }
+               }
+
+
+               int secondsToWater = 0;
+               if (isLastDay) {
+
+                       // last day of week to water so water the remaining amount
+                       double minutesToWater = timePerWeek - timeWateredSoFar;
+                       timeWateredSoFar = 0;
+                       secondsToWater = (int)((double)(minutesToWater * 60));
+
+               } else {
+
+                       // if it is not the last day then just water a normal amount
+                       timeWateredSoFar += timePerWatering;
+                       secondsToWater = (int)((double)(timePerWatering * 60));
+               }
+
+               try {
+                       System.out.println("DEBUG: We water the lawn!!! Zone: " + zone + " Seconds to water: " + secondsToWater);
+                       sprinkler.setZone(zone, true, secondsToWater);
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+
+       }
+
+       /** Method callback from the motion detection callback interface, processes the motion
+        *  to see how long the motion was and saves that motion.
+        *
+        *   @param _md  [MotionDetection], motion detector with the motion
+        *
+        *   @return [void] None.
+        */
+       public void motionDetected(@NonLocalRemote MotionDetection _md) {
+
+               Date currMotTime = _md.getTimestampOfLastMotion();
+
+               if (lastMotionDetectedTime == null) {
+                       lastMotionDetectedTime = currMotTime;
+               }
+
+               if (startOfThisMotion == null) {
+                       startOfThisMotion = currMotTime;
+               }
+
+               long timeElapsed = (currMotTime.getTime() - lastMotionDetectedTime.getTime()) / 1000;
+
+               if (timeElapsed >= NEW_MOTION_THRESHOLD) {
+                       try {
+                               mutex.lock();
+                               long motiontime = (lastMotionDetectedTime.getTime() - startOfThisMotion.getTime()) / 1000;
+                               totalMotionOnLawn += motiontime;
+                               numberOfMotionsOnLawnToday++;
+
+
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+                       finally {
+                               mutex.unlock();
+                       }
+
+                       startOfThisMotion = currMotTime;
+               }
+
+               lastMotionDetectedTime = currMotTime;
+       }
+
+
+       /** Callback method for when a new moisture reading is available.
+        *   Called when a new reading is ready by the sensor and the sensor
+        *   can be checked for the frame data.
+        *
+        *   @param _sensor [MoistureSensor] .
+        *
+        *   @return [void] None.
+        */
+       public void newReadingAvailable(@NonLocalRemote MoistureSensor _sensor) {
+
+               try {
+                       // update the saved readings
+                       moistureSensorReadings.put(_sensor, (double)_sensor.getMoisture());
+                       moistureSensorUpdateTimes.put(_sensor, _sensor.getTimestampOfLastReading());
+               } catch(RemoteException ex) {
+                       ex.printStackTrace();
+               }
+       }
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Helper Methods
+       **
+       *******************************************************************************************************************************************/
+
+       /** Method to check if it rained recently in the near past.
+        *
+        *   @param _numberOfDaysInPast  [long], number of days in the past to check if it rained recently.
+        *   @param _currentDate  [Date], the current date and time.
+        *
+        *   @return [boolean] weather it rained recently or not.
+        */
+       private boolean didRainRecently(Date _currentDate, long _numberOfDaysInPast) {
+
+               // it never rained before
+               if (daysRained.size() == 0) {
+                       return false;
+               }
+
+               // convert the days to seconds for calculation
+               long numberOfSecondsInPast = _numberOfDaysInPast * 24 * 60 * 60;
+
+               // go through all the stored days that it rained on
+               for (Date d : daysRained) {
+
+                       // check the difference time and convert to seconds.
+                       long numberOfSecondsDifference = (_currentDate.getTime() - d.getTime()) / 1000;
+
+                       // if it rained in the last specified time then return true
+                       if (numberOfSecondsDifference < numberOfSecondsInPast) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
+
+       /** Method calculate the average moisture readings of the most recent moisture reading of each sensor
+        *   if that reading is not stale
+        *
+        *   @return [double] average value of moisture readings.
+        */
+       private double getAverageMoistureReading() {
+
+               Date currentTime = new Date();
+               double total = 0;
+               int numberOfReadings = 0;
+
+               for (@NonLocalRemote MoistureSensor sen : moistureSensorReadings.keySet()) {
+
+                       // check the timestamp of the watering of the lawn
+                       Date readingTimestamp = moistureSensorUpdateTimes.get(sen);
+
+                       System.out.println("DEBUG: Sensor reading time stamp: " + readingTimestamp.getTime());
+                       System.out.println("DEBUG: Current time stamp: " + currentTime.getTime());
+                       System.out.println("Time elapsed: " + (currentTime.getTime() - readingTimestamp.getTime()) / 1000);                     
+
+                       //long timeElapsedSinceLastWatering = (currentTime.getTime() - readingTimestamp.getTime()) / 1000;
+
+                       // if reading is old then dont use it since it is noise
+                       //if (timeElapsedSinceLastWatering > TWO_HOURS) {
+                       //      continue;
+                       //}
+
+                       // Do averaging
+                       numberOfReadings++;
+                       total += moistureSensorReadings.get(sen);
+
+                       System.out.println("DEBUG: Sensor reading value: " + moistureSensorReadings.get(sen) + " with total: " + total);
+               }
+
+               // if no readings were valid then return -1 so that we can signal that moisture cannot be used for now
+               if (numberOfReadings == 0) {
+                       return -1;
+               }
+
+               // return the calculated average of all the recent moisture readings
+               return total / (double)numberOfReadings;
+       }
+}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/benchmarks/IrrigationController/MANIFEST.MF b/benchmarks/IrrigationController/MANIFEST.MF
new file mode 100644 (file)
index 0000000..a29e15e
--- /dev/null
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0\r
+Main-Class: WeatherGrabber\r
diff --git a/benchmarks/IrrigationController/Makefile b/benchmarks/IrrigationController/Makefile
new file mode 100644 (file)
index 0000000..451ab1d
--- /dev/null
@@ -0,0 +1,36 @@
+BASE = ../..
+
+include $(BASE)/common.mk
+
+BOOFDIR := ../libs/boofcv_libs
+BOOFJARS := $(BOOFDIR)/BoofCV-feature-0.21.jar:$(BOOFDIR)/BoofCV-io-0.21.jar:$(BOOFDIR)/BoofCV-visualize-0.21.jar:$(BOOFDIR)/BoofCV-ip-0.21.jar:$(CHECKERJARS)
+
+JFLAGS = -d $(BIN_DIR) -cp $(BOOFJARS):$(BIN_DIR):.
+JARFLAGS = cf 
+
+# checker option
+#
+CHECKER_OPT = -processor iotchecker.IoTJavaChecker
+
+ASTUBS = -Astubs=../../checker/astubs/ 
+
+all: check
+
+PHONY += check
+check:
+       $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) *.java
+       cd  $(BIN_DIR)/IrrigationController; $(JAR) $(JARFLAGS) IrrigationController.jar ../IrrigationController/*.class ../iotcode/interfaces/*.class
+       cp IrrigationController.config $(BIN_DIR)/IrrigationController
+       cp -rf ./resources ./help_files $(BIN_DIR)/IrrigationController
+       cd  $(BIN_DIR)/IrrigationController; zip -r IrrigationController.zip ./resources ./help_files
+
+PHONY += nocheck
+
+nocheck:
+       $(JAVAC) $(JFLAGS) *.java
+       cd $(BIN_DIR)/IrrigationController; $(JAR) $(JARFLAGS) IrrigationController.jar ../IrrigationController/*.class ../iotcode/interfaces/*.class
+       cp IrrigationController.config $(BIN_DIR)/IrrigationController
+       cp -rf ./resources ./help_files $(BIN_DIR)/IrrigationController
+       cd  $(BIN_DIR)/IrrigationController; zip -r IrrigationController.zip ./resources ./help_files
+
+.PHONY: $(PHONY)
diff --git a/benchmarks/IrrigationController/MotionDetection.java b/benchmarks/IrrigationController/MotionDetection.java
new file mode 100644 (file)
index 0000000..1c2e865
--- /dev/null
@@ -0,0 +1,435 @@
+package IrrigationController;
+// IoT packages
+import iotcode.interfaces.*;
+
+// BoofCv packages
+import boofcv.alg.background.BackgroundModelStationary;
+import boofcv.factory.background.ConfigBackgroundGaussian;
+import boofcv.factory.background.FactoryBackgroundModel;
+import boofcv.gui.binary.VisualizeBinaryData;
+import boofcv.gui.image.ImageGridPanel;
+import boofcv.gui.image.ShowImages;
+import boofcv.io.MediaManager;
+import boofcv.io.UtilIO;
+import boofcv.io.image.SimpleImageSequence;
+import boofcv.io.image.ConvertBufferedImage;
+import boofcv.io.wrapper.DefaultMediaManager;
+import boofcv.struct.image.ImageBase;
+import boofcv.struct.image.ImageFloat32;
+import boofcv.struct.image.ImageType;
+import boofcv.struct.image.ImageUInt8;
+import boofcv.alg.filter.blur.BlurImageOps;
+
+
+// Standard Java Packages
+import java.awt.image.BufferedImage;
+import java.util.Date;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.awt.image.ColorModel;
+import java.awt.image.WritableRaster;
+import java.util.List;
+import java.util.ArrayList;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import javax.imageio.ImageIO;
+
+// RMI Packages
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+
+// Checker annotations
+import iotchecker.qual.*;
+
+
+
+/** Class MotionDetection to do motion detection using images
+ *
+ *
+ * @author      Ali Younis <ayounis @ uci.edu>
+ * @version     1.0
+ * @since       2016-03-21
+ */
+class MotionDetection extends UnicastRemoteObject implements CameraCallback {
+
+       // Define Like variables
+       private static boolean DO_GRAPHICAL_USER_INTERFACE = false;
+
+       /*******************************************************************************************************************************************
+       **
+       **  Constants
+       **
+       *******************************************************************************************************************************************/
+       private final float MOTION_DETECTED_THRESHOLD_PERCENTAGE = 5;
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Variables
+       **
+       *******************************************************************************************************************************************/
+
+       // Timestamp buffer and locks needed for that safety on that buffer
+       // This is the buffer for post-detection algorithm use
+       private Date timestampOfLastMotion = null;
+       private ReadWriteLock timestampReadWriteLock = new ReentrantReadWriteLock();
+       private Lock timestampReadLock = timestampReadWriteLock.readLock();
+       private Lock timestampWriteLock = timestampReadWriteLock.writeLock();
+
+       // Flag for when new data is available and ready for processing
+       private AtomicBoolean newFrameAvailable = new AtomicBoolean(false);
+
+       // Flag for determining if motion has been detected and therefore
+       // the callbacks should be issued
+       private AtomicBoolean motionDetected = new AtomicBoolean(false);
+
+       // Image and timestamp buffers and  locks needed for that safety on those buffers
+       // Timestamp buffer for pre-detection algorithm use
+       private BufferedImage latestImage = null;
+       private Date possibleDate = null;
+       private ReadWriteLock imageReadWriteLock = new ReentrantReadWriteLock();
+       private Lock imageReadLock = imageReadWriteLock.readLock();
+       private Lock imageWriteLock = imageReadWriteLock.writeLock();
+
+       // List of objects wishing to receive callbacks from this class.
+       private List<@NonLocalRemote MotionDetectionCallback> callbackList = new ArrayList<@NonLocalRemote MotionDetectionCallback>();
+
+       // Variables to help with motion detection
+       private ConfigBackgroundGaussian configGaussian = null;
+       private BackgroundModelStationary backgroundDetector = null;
+       private ImageUInt8 segmented = null;
+       private ImageFloat32 newFrameFloat = null;
+
+       // counts the number of frames since a background image is added to algorithm
+       private int frameCounter = 0;
+
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Threads
+       **
+       *******************************************************************************************************************************************/
+       private Thread workThread = null;
+       private Thread callBackThread = null;
+
+       /*******************************************************************************************************************************************
+       **
+       **  GUI Stuff (Used Only for Testing)
+       **
+       *******************************************************************************************************************************************/
+       ImageGridPanel gui;
+
+
+
+       /** Constructor
+        *
+        *   @param _threshold       [float], Variable for gaussian background detector.
+        *   @param _learnSpeed      [float], Variable for gaussian background detector.
+        *   @param _initialVariance [float], Variable for gaussian background detector.
+        *   @param _minDifference   [float], Variable for gaussian background detector.
+        *
+        */
+       public MotionDetection(float _threshold, float _learnSpeed, float _initialVariance, float _minDifference) throws RemoteException {
+
+               // Configure the Gaussian model used for background detection
+               configGaussian = new ConfigBackgroundGaussian(_threshold, _learnSpeed);
+               configGaussian.initialVariance = _initialVariance;
+               configGaussian.minimumDifference = _minDifference;
+
+               // setup the background detector
+               ImageType imageType = ImageType.single(ImageFloat32.class);
+               backgroundDetector = FactoryBackgroundModel.stationaryGaussian(configGaussian, imageType);
+
+               // setup the gui if we are going to use it
+               if (DO_GRAPHICAL_USER_INTERFACE) {
+
+                       // create an image grid for images to place on, tile fashion
+                       gui = new ImageGridPanel(1, 2);
+
+                       // make the window large so we dont have to manually resize with the mouse
+                       gui.setSize(1920, 1080);
+
+                       // Make the window visible and set the title
+                       ShowImages.showWindow(gui, "Static Scene: Background Segmentation", true);
+               }
+
+               // Launch the worker thread
+               workThread = new Thread(new Runnable() {
+                       public void run() {
+
+                               while (true) {
+                                       runMotionDetection();
+                               }
+                       }
+               });
+               workThread.start();
+
+
+               // Launch the callback thread
+               callBackThread = new Thread(new Runnable() {
+                       public void run() {
+
+                               while (true) {
+                                       doCallbacks();
+                               }
+                       }
+               });
+               callBackThread.start();
+       }
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Public Methods
+       **
+       *******************************************************************************************************************************************/
+
+       /** Method to add a new frame to the motion detector.
+        *
+        *   @param _newFrame  [byte[]], Frame data of new frame.
+        *   @param _timestamp [Date]  , Timestamp of new frame.
+        *
+        *   @return [void] None.
+        */
+       public void addFrame(byte[]  _newFrame, Date _timestamp) {
+               BufferedImage img = null;
+
+               try {
+                       // Parse the byte array into a Buffered Image
+                       InputStream in = new ByteArrayInputStream(_newFrame);
+                       img = ImageIO.read(in);
+
+               } catch (Exception e) {
+                       e.printStackTrace();
+                       return;
+               }
+
+               // Save the image and timestamp for use later
+               imageWriteLock.lock();                                          // lock the image and timestamp buffers since multithread
+               latestImage = img;                                                              // image into image buffer
+               possibleDate = _timestamp;                              // timestamp into timestamp buffer
+               imageWriteLock.unlock();                                        // Never forget to unlock
+
+               // flag the worker thread that there is new data ready for processing
+               newFrameAvailable.set(true);
+       }
+
+       /** Method to get the timestamp of the last time motion was detected
+        *
+        *   @return [Date] timestamp of last motion or null if no motion was ever detected.
+        */
+       public Date getTimestampOfLastMotion() {
+               Date ret = null;
+
+               // Be safe because multithread
+               timestampReadLock.lock();
+
+               // Checks if there was ever motion, if not then timestampOfLastMotion
+               // will be null
+               if (timestampOfLastMotion != null) {
+                       // Clone since we don't know what the other person is going to do
+                       // with the timestamp
+                       ret = (Date)timestampOfLastMotion.clone();
+               }
+
+               timestampReadLock.unlock();
+
+               return ret;
+       }
+
+
+       /** Method to add a new frame to the motion detector from a camera
+        *
+        *   @param _camera  [Camera], Camera that has the new data.
+        *
+        *   @return [void] None.
+        */
+       //public void newCameraFrameAvailable(@NonLocalRemote Camera _camera) {
+       public void newCameraFrameAvailable(byte[] latestFrame, long timeStamp) {
+               BufferedImage img = null;
+
+               try {
+                       // Parse the byte array into a Buffered Image
+                       //InputStream in = new ByteArrayInputStream(_camera.getLatestFrame());
+                       InputStream in = new ByteArrayInputStream(latestFrame);
+                       img = ImageIO.read(in);
+
+               } catch (RemoteException e) {
+                       e.printStackTrace();
+                       return;
+
+               } catch (Exception e) {
+                       e.printStackTrace();
+                       return;
+
+               }
+
+               // Save the image and timestamp for use later
+               imageWriteLock.lock();                  // lock the image and timestamp buffers since multithread
+               latestImage = img;                                      // image into image buffer
+
+               // timestamp from camera into timestamo buffer
+               //try {
+                       //long dateLong = _camera.getTimestamp();
+                       long dateLong = timeStamp;
+                       possibleDate = new Date(dateLong);
+               //} catch (RemoteException e) {
+               //      e.printStackTrace();
+               //}
+
+               imageWriteLock.unlock();                // Never forget to unlock
+
+               // flag the worker thread that there is new data ready for processing
+               newFrameAvailable.set(true);
+       }
+
+       /** Method to register an object to recieve callbacks from this motion detector
+        *
+        *   @param _mdc  [MotionDetectionCallback], object to recieve callbacks.
+        *
+        *   @return [void] None.
+        */
+       public void registerCallback(@NonLocalRemote MotionDetectionCallback _mdc) {
+               callbackList.add(_mdc);
+       }
+
+       /*******************************************************************************************************************************************
+       **
+       **  Helper Methods
+       **
+       *******************************************************************************************************************************************/
+
+       /** Method that constantly loops checking if new data is available.  If there is
+        *   new data, it is processed.
+        *   This method should be run on a separate thread.
+        *
+        *   @return [void] None.
+        */
+       private void runMotionDetection() {
+
+               // check if there is a new frame availble, only runs detection if there is new data to save
+               // computation time
+               if (!newFrameAvailable.get()) {
+                       return;
+               }
+
+               // Lock since we are accessing the data buffers
+               imageReadLock.lock();
+
+               // processing data so now the buffered data is old
+               newFrameAvailable.set(false);
+
+               // copy from buffer to local for processing
+               Date tmpDate = possibleDate;
+
+               // Allocate space for the segmented image based on the first image we received
+               // cannot pre-allocate this since we do not know what the size of the images is
+               // before the first image arrives
+               if (segmented == null) {
+                       segmented = new ImageUInt8(latestImage.getWidth(), latestImage.getHeight());
+               }
+
+               // copy from data buffers and convert into correct data type for BoofCv libraries
+               newFrameFloat = ConvertBufferedImage.convertFrom(latestImage, newFrameFloat);
+
+               // All done accessing the data buffers
+               imageReadLock.unlock();
+
+               // Run background detection
+               backgroundDetector.segment(newFrameFloat, segmented);
+
+               // Update the background baseline every 10 frames, helps the algorithm
+               frameCounter++;
+               if (frameCounter > 10) {
+                       backgroundDetector.updateBackground(newFrameFloat);
+                       frameCounter = 0;
+               }
+
+               // get the raw pixel data, gray-scale image
+               byte[] frameData = segmented.getData();
+
+               // count the number of pixels of the image that was deemed as "motion"
+               double count = 0;
+               double countMotion = 0;
+               for (byte b : frameData) {
+                       count++;
+                       if (b > 0) {
+                               countMotion++;
+                       }
+               }
+
+               // calculate the percentage of the image that was in motion
+               double percentMotion = (countMotion / count) * 100.0;
+
+               // Check if a high enough percentage of the image was in motion to say that there was motion in this frame of data
+               if (percentMotion > MOTION_DETECTED_THRESHOLD_PERCENTAGE) {
+
+                       // Motion detected so save timestamp of this frame to another buffer
+                       timestampWriteLock.lock();
+                       timestampOfLastMotion = (Date)tmpDate.clone();                  // clone to a different buffer
+                       timestampWriteLock.unlock();
+
+                       System.out.println("Motion Detected (with percentage: " + Double.toString(percentMotion) + "%)");
+               }
+
+               // Do output to the screen if we are using gui mode
+               if (DO_GRAPHICAL_USER_INTERFACE) {
+
+                       // change image data unto correct type for rendering
+                       BufferedImage visualized1 = new BufferedImage(segmented.width, segmented.height, BufferedImage.TYPE_INT_RGB);
+                       VisualizeBinaryData.renderBinary(segmented, false, visualized1);
+
+                       // change image data unto correct type for rendering
+                       BufferedImage visualized2 = null;
+                       visualized2 = ConvertBufferedImage.convertTo(newFrameFloat, visualized2, true);
+
+                       // place the images into the image grid
+                       gui.setImage(0, 1, visualized1);
+                       gui.setImage(0, 2, visualized2);
+
+                       // trigger rendering
+                       gui.repaint();
+               }
+       }
+
+       /** Method that constantly loops checking if the callbacks should be issues and
+        *   issues the callbacks if they should be issues.
+        *   This method should be run on a separate thread.
+        *
+        *   @return [void] None.
+        */
+       private void doCallbacks() {
+
+               // Keep looping forever for callback
+               while (true) {
+
+                       // If motion detected
+                       if (motionDetected.compareAndSet(true, false)) {
+
+                               // Motion was detected so issue callbacks to all objects that registered
+                               // to receive callback from this class.
+                               for (@NonLocalRemote MotionDetectionCallback c : callbackList) {
+                                       try {
+                                               c.motionDetected(this);
+                                       } catch (RemoteException re) {
+                                       }
+                               }
+
+                       } else {
+
+                               // Sleep for 15 millisec to give time for new frame to arrive
+                               try {
+                                       Thread.sleep(15);
+                               } catch (InterruptedException ie) {
+                               }
+                       }
+               }
+       }
+}
+
diff --git a/benchmarks/IrrigationController/MotionDetectionCallback.java b/benchmarks/IrrigationController/MotionDetectionCallback.java
new file mode 100644 (file)
index 0000000..5961305
--- /dev/null
@@ -0,0 +1,26 @@
+package IrrigationController;
+
+/** Interface MotionDetectionCallback for allowing callbacks from the MotionDetection class.
+ *
+ *
+ * @author      Ali Younis <ayounis @ uci.edu>
+ * @version     1.0
+ * @since       2016-03-21
+ */
+
+// Checker annotations
+import iotchecker.qual.*;
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+
+public interface MotionDetectionCallback extends Remote {
+
+       /** Callback method for when motion is detected.
+        *
+        *   @param _md [MotionDetection].
+        *
+        *   @return [void] None.
+        */
+       public void motionDetected(@NonLocalRemote MotionDetection _wg) throws RemoteException;
+}
diff --git a/benchmarks/IrrigationController/Tuple.java b/benchmarks/IrrigationController/Tuple.java
new file mode 100644 (file)
index 0000000..ec75598
--- /dev/null
@@ -0,0 +1,30 @@
+package IrrigationController;
+
+/** Class Tuple used for storing a pair of objects together
+ *
+ * Referenced from: http://stackoverflow.com/questions/2670982/using-pairs-or-2-tuples-in-java
+ *
+ * @author      Ali Younis <ayounis @ uci.edu>
+ * @version     1.0
+ * @since       2016-01-27
+ */
+
+public class Tuple<X, Y> {
+
+       // The tuple object internal objects have no protection
+       // Assume that the user will use these in a safe way
+       public final X x;
+       public final Y y;
+
+
+       /** Constructor
+        *
+        *   @param x [X], x value of tuple.
+        *   @param y [Y], y value of tuple.
+        *
+        */
+       public Tuple(X x, Y y) {
+               this.x = x;
+               this.y = y;
+       }
+}
diff --git a/benchmarks/IrrigationController/WeatherGrabber.java b/benchmarks/IrrigationController/WeatherGrabber.java
new file mode 100644 (file)
index 0000000..c47170b
--- /dev/null
@@ -0,0 +1,584 @@
+package IrrigationController;
+
+// IoT Packages
+import iotruntime.slave.IoTAddress;
+import iotruntime.IoTURL;
+
+// Standard Java Packages
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.PrintStream;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+
+/** Class WeatherGrabber to get weather data information using the OpenWeatherMap api.
+ *
+ * @author      Ali Younis <ayounis @ uci.edu>
+ * @version     1.0
+ * @since       2016-03-24
+ */
+public class WeatherGrabber {
+
+       /*******************************************************************************************************************************************
+       **
+       **  Constants
+       **
+       *******************************************************************************************************************************************/
+
+       // KEy for using the api, needed for authentication with the api when making calls to it
+       public static final String API_KEY_ID = "fbc55f11190c6472e14b7743f8a38c92";
+
+       // location in the jar file where the zipcodes csv data is located
+       public static final String ZIPCODE_CSV_FILE = "./resources/zipcode.csv";
+
+       // location in the jar file where the area codes csv data is located
+       public static final String AREA_CODE_CSV_FILE = "./resources/area_codes.csv";
+
+
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Variables
+       **
+       *******************************************************************************************************************************************/
+
+       // Communications information for interfacing with the api
+       private IoTAddress weatherDataAddress;
+
+       // Things needed for caching of the data
+       private long timestampOfLastWeatherRetrieval = 0;
+       private int lastZipcodeLookup = 0;
+       private List<DayWeather> weatherDataCache = null;
+
+       private int savedZipcode = 0;
+       private int savedNumberOfDays = 16;
+
+
+       public WeatherGrabber(IoTAddress _IoTAddress) {
+               this.weatherDataAddress = _IoTAddress;
+       }
+
+
+
+
+       /*******************************************************************************************************************************************
+       **
+       **  Public Methods
+       **
+       *******************************************************************************************************************************************/
+
+
+       /** Method to get and parse the weather data for the saved zipcode and number of days
+        *
+        *   @return [List<DayWeather>] list of day by day weather data.
+        */
+       public List<DayWeather> getWeatherData() {
+               if (savedZipcode <= 0) {
+                       return null;
+               }
+               return getWeatherData(savedZipcode, savedNumberOfDays);
+       }
+
+
+       /** Method to get and parse the weather data for a specific zipcode for a specified number of days
+        *
+        *   @param _weatherCode  [int], zipcode to get the weather for.
+        *   @param _numberOfDays [int], number of days to lookup weather for.
+        *
+        *   @return [List<DayWeather>] list of day by day weather data.
+        */
+       public List<DayWeather> getWeatherData(int _zipcode, int _numberOfDays) {
+
+               // less than or equal to 0 means that the list will be empty
+               if (_numberOfDays <= 0) {
+                       return new ArrayList<DayWeather>();
+               }
+
+               // get current date and time
+               Date date = new Date();
+
+               // check if we ever got the weather data
+               if (this.timestampOfLastWeatherRetrieval != 0) {
+
+                       // check the elapsed time since we got the weather data
+                       long timeElapsedFromLastWeatherDataRead = date.getTime() - this.timestampOfLastWeatherRetrieval;
+                       timeElapsedFromLastWeatherDataRead /= 1000;                             // convert to seconds
+
+                       // we got the cached weather data less than 12 hours ago so just use the cached data
+                       // The api limits how many calls we can make in a given time and so we should cache the data
+                       // and reuse it.  Also the weather doesnt change that fast
+                       if (timestampOfLastWeatherRetrieval <= 43200) {
+
+                               // make sure the cached weather data is for the zipcode that we are being asked for
+                               if (lastZipcodeLookup == _zipcode) {
+
+                                       // now check that we actually have weather data available
+                                       if (weatherDataCache != null) {
+
+                                               // make sure we have enough weather data, we may only have data for some of the days that
+                                               // are being requested but not all
+                                               if (weatherDataCache.size() >= _numberOfDays) {
+                                                       return weatherDataCache;
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               // convert zipcode into weather api specific area code
+               int weatherLocationCode = getWeatherCode(_zipcode);
+
+               // check if weather information can be attained for the zipcode specified
+               if (weatherLocationCode == -1) {
+                       return null;
+               }
+
+               // save information for caching
+               lastZipcodeLookup = _zipcode;
+               timestampOfLastWeatherRetrieval = date.getTime();
+
+               // try to get the weather data XML from the server
+               InputStream inputStream = getXmlData(weatherLocationCode, _numberOfDays);
+               if (inputStream == null) {
+                       return null;
+               }
+
+               // convert the XML into an easier to use format
+               weatherDataCache = parseXmlData(inputStream);
+               return weatherDataCache;
+       }
+
+
+       /** Method to set the zipcode of this weather grabber
+        *
+        *   @param _zipcode  [int], zipcode to get the weather for.
+        *
+        *   @return [void] None.
+        */
+       public void setZipcode(int _zipcode) {
+               savedZipcode = _zipcode;
+       }
+
+
+       /** Method to set the number of days of this weather grabber
+        *
+        *   @param _numberOfDays  [int], number of days to get the weather for.
+        *
+        *   @return [void] None.
+        */
+       public void setNumberOfDays(int _numberOfDays) {
+               savedNumberOfDays = _numberOfDays;
+       }
+
+
+       /** Method to get the zipcode of this weather grabber
+        *
+        *   @return [int] zipcode of the weather grabber.
+        */
+       public int getZipcode() {
+               return savedZipcode;
+       }
+
+
+       /** Method to get the number of days of this weather grabber
+        *
+        *   @return [int] number of days of the weather grabber.
+        */
+       public int getNumberOfDays() {
+               return savedNumberOfDays;
+       }
+
+       /*******************************************************************************************************************************************
+       **
+       **  Helper Methods
+       **
+       *******************************************************************************************************************************************/
+
+       /** Method to get the XML file that the weather api returns after a query
+        *
+        *   @param _weatherCode  [int], weather api specific location code.
+        *   @param _numberOfDays [int], number of days to lookup weather for.
+        *
+        *   @return [InputStream] InputStream containing the xml file data.
+        */
+       private InputStream getXmlData(int _weatherCode, int _numberOfDays) {
+
+               // We can only get a max of 16 days into the future
+               if (_numberOfDays > 16) {
+                       _numberOfDays = 16;
+               }
+
+               // Create the url ending path with all the parameters needed to get the XML file
+               String urlEnd = "/data/2.5/forecast/daily?id=" + Integer.toString(_weatherCode) + "&units=imperial&mode=xml&cnt=" + Integer.toString(_numberOfDays) + "&APPID=" + "fbc55f11190c6472e14b7743f8a38c92";
+
+               // Communication object created based on address passed in by the runtime system
+               IoTURL urlConnection = new IoTURL(weatherDataAddress);
+               System.out.println("URL: " + urlEnd);
+
+               try {
+                       // sets the connection ending address
+                       urlConnection.setURL(urlEnd);
+                       System.out.println("Connected to URL!");
+
+                       // Return the stream
+                       return urlConnection.openStream();
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+
+               // something happened and the URL connection could not be opened.
+               return null;
+       }
+
+
+       /** Method to parse the XML file that the weather api returns after a query
+        *
+        *   @param inputStream [InputStream], input stream containing weather XML file.
+        *
+        *   @return [List<DayWeather>] list of day by day weather data.
+        */
+       private List<DayWeather> parseXmlData(InputStream inputStream) {
+               try {
+
+                       // array to store the parsed weather data per day
+                       ArrayList<DayWeather> weatherDataList = new ArrayList<DayWeather>();
+
+                       // stuff needed to open and parse an XML file
+                       DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+                       documentBuilderFactory.setValidating(false);
+                       documentBuilderFactory.setNamespaceAware(false);
+                       DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+                       Document document = documentBuilder.parse(inputStream);
+
+                       // get the forecast node that is the main node for each of the day subnodes
+                       NodeList forcastNodes = document.getElementsByTagName("forecast").item(0).getChildNodes();
+                       for (int i = 0; i < forcastNodes.getLength(); ++i) {
+
+                               // the node for each of the individual days
+                               Node dayNode = forcastNodes.item(i);
+
+                               // make sure the node is an actually day node and not an invalid node
+                               if (dayNode.getNodeType() == Node.ELEMENT_NODE) {
+
+                                       // Convert to elements since we can only pull data out of elements not nodes
+                                       Element dayElement = (Element)dayNode;
+
+                                       // Information is saved in child nodes
+                                       NodeList informationNodes = dayNode.getChildNodes();
+
+                                       // Data that pulls the pre-parse data from the XML file
+                                       String dateString = dayElement.getAttribute("day");
+                                       String weatherInfoCode = "";
+                                       String windDirectionText = "";
+                                       String windDirectionDegrees = "";
+                                       String windSpeed = "";
+                                       String temperatureDay = "";
+                                       String temperatureEvening = "";
+                                       String temperatureMorning = "";
+                                       String temperatureNight = "";
+                                       String temperatureMax = "";
+                                       String temperatureMin = "";
+                                       String pressure = "";
+                                       String humidity = "";
+                                       String cloudCoverage = "";
+
+                                       // go through the child info nodes and pull the data out
+                                       for (int j = 0; j < informationNodes.getLength(); ++j) {
+
+                                               Node informationNode = informationNodes.item(j);
+
+                                               if (informationNode.getNodeType() == Node.ELEMENT_NODE) {
+
+                                                       Element informationElement = (Element)informationNode;
+                                                       String informationName = informationElement.getTagName();
+
+                                                       if (informationName.equals("symbol")) {
+                                                               weatherInfoCode = informationElement.getAttribute("number");
+
+                                                       } else if (informationName.equals("windDirection")) {
+                                                               windDirectionText = informationElement.getAttribute("code");
+                                                               windDirectionDegrees = informationElement.getAttribute("deg");
+
+                                                       } else if (informationName.equals("windSpeed")) {
+                                                               windSpeed = informationElement.getAttribute("mps");
+
+                                                       } else if (informationName.equals("temperature")) {
+                                                               temperatureDay = informationElement.getAttribute("day");
+                                                               temperatureEvening = informationElement.getAttribute("eve");
+                                                               temperatureMorning = informationElement.getAttribute("morn");
+                                                               temperatureNight = informationElement.getAttribute("night");
+                                                               temperatureMax = informationElement.getAttribute("max");
+                                                               temperatureMin = informationElement.getAttribute("min");
+
+                                                       } else if (informationName.equals("pressure")) {
+                                                               pressure = informationElement.getAttribute("value");
+
+                                                       } else if (informationName.equals("humidity")) {
+                                                               humidity = informationElement.getAttribute("value");
+
+                                                       } else if (informationName.equals("clouds")) {
+                                                               cloudCoverage = informationElement.getAttribute("all");
+
+                                                       }
+                                               }
+                                       }
+
+                                       // Create the day object,  this object will automatically convert the string data into
+                                       // the appropriate data types
+                                       DayWeather dayWeather = new DayWeather(dateString,
+                                                                                                                                                                                                weatherInfoCode,
+                                                                                                                                                                                                windDirectionText,
+                                                                                                                                                                                                windDirectionDegrees,
+                                                                                                                                                                                                windSpeed,
+                                                                                                                                                                                                temperatureDay,
+                                                                                                                                                                                                temperatureEvening,
+                                                                                                                                                                                                temperatureMorning,
+                                                                                                                                                                                                temperatureNight,
+                                                                                                                                                                                                temperatureMax,
+                                                                                                                                                                                                temperatureMin,
+                                                                                                                                                                                                pressure,
+                                                                                                                                                                                                humidity,
+                                                                                                                                                                                                cloudCoverage);
+
+                                       // add this day to the list
+                                       weatherDataList.add(dayWeather);
+                               }
+                       }
+
+                       // return the weather data to the caller
+                       return weatherDataList;
+               } catch (Exception e) {
+                       System.err.println("unable to load XML: ");
+                       e.printStackTrace();
+               }
+
+               // There was an error parsing so return null
+               return null;
+       }
+
+
+       /** Method to weather api specific location code for a given zipcode.
+        *
+        *   @param _zipcode [double], zipcode to lookup.
+        *
+        *   @return [double] weather api location code for the given zipcode.
+        */
+       private int getWeatherCode(int _zipcode) {
+
+               // used for reading the .csv files
+               BufferedReader bufferedReader = null;
+
+               // latitude and longitude of the zipcode, will stay -1 if zipcode not found
+               float locationLatitude = -1;
+               float locationLongitude = -1;
+
+
+               try {
+
+                       // Open the csv file
+                       //InputStream inputStream = this.getClass().getResourceAsStream(ZIPCODE_CSV_FILE);
+                       InputStream inputStream = new FileInputStream(new File(ZIPCODE_CSV_FILE));
+                       bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+
+                       if (bufferedReader != null)
+                               System.out.println("DEBUG: Zip code file read successfully!");
+
+                       // read the .csv file line by line and parse the file
+                       String line = "";
+                       while ((line = bufferedReader.readLine()) != null) {
+
+                               // split lines on commas, should result in an array of strings of size 3
+                               String[] splitString = line.split(",");
+
+                               // make sure the line has the correct format
+                               if (splitString.length != 3) {
+                                       continue;
+                               }
+
+                               // parse the line for the individual data pieces
+                               int zipcodeValue = Integer.parseInt(splitString[0]);
+                               float latValue = Float.parseFloat(splitString[1]);
+                               float lonValue = Float.parseFloat(splitString[2]);
+
+                               // if the zipcode of this line matches the zipcode that was requested
+                               if (zipcodeValue == _zipcode) {
+
+                                       // It does get the lat and long
+                                       locationLatitude = latValue;
+                                       locationLongitude = lonValue;
+
+                                       // dont need to search anymore since we found the exact zipcode
+                                       break;
+                               }
+                       }
+
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+               finally {
+
+                       // always close the file since we are going to use the buffered reader again
+                       if (bufferedReader != null) {
+                               try {
+                                       bufferedReader.close();
+                               } catch (IOException e) {
+                                       e.printStackTrace();
+                               }
+                       }
+               }
+
+               // if zipcode was not found then will be -1 and we should report an error
+               if (locationLatitude == -1) {
+                       return -1;
+               }
+
+               // reset so we can use it again
+               bufferedReader = null;
+
+               // used to store the closest location matched since lat and long may not match up exactly
+               float closestDistance = 100000;
+               int closestWeatherCode = 0;
+
+
+               try {
+                       // Open the csv file
+                       //InputStream inputStream = this.getClass().getResourceAsStream(AREA_CODE_CSV_FILE);
+                       InputStream inputStream = new FileInputStream(new File(AREA_CODE_CSV_FILE));
+                       bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+
+                       if (bufferedReader != null)
+                               System.out.println("DEBUG: Area code file read successfully!");
+
+                       // read the .csv file line by line and parse the file
+                       String line = "";
+                       while ((line = bufferedReader.readLine()) != null) {
+
+                               // split lines on commas, should result in an array of strings of size 3
+                               String[] splitString = line.split(",");
+
+                               // make sure the line has the correct format
+                               if (splitString.length != 3) {
+                                       continue;
+                               }
+
+                               // parse the line for the individual data pieces
+                               int weatheCodeValue = Integer.parseInt(splitString[0]);
+                               float lonValue = Float.parseFloat(splitString[1]);
+                               float latValue = Float.parseFloat(splitString[2]);
+
+
+                               // calculate the distance from this lat long from the one matched to the zipcode
+                               float currDistance = (float)distance(latValue, lonValue, locationLatitude, locationLongitude);
+
+                               // of distance is closer
+                               if (currDistance <= closestDistance) {
+
+                                       // save this entry
+                                       closestDistance = currDistance;
+                                       closestWeatherCode = weatheCodeValue;
+                               }
+                       }
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+               finally {
+
+                       // make sure we close the file
+                       if (bufferedReader != null) {
+                               try {
+                                       bufferedReader.close();
+                               } catch (IOException e) {
+                                       e.printStackTrace();
+                               }
+                       }
+               }
+
+               return closestWeatherCode;
+       }
+
+
+       /** Static Method to get distance from 2 latitude and longitude positions.
+        *   Adapted from https://www.geodatasource.com/developers/java
+        *
+        *   @param _lat1   [double], latitude pair 1.
+        *   @param _long1  [double], longitude pair 1.
+        *   @param _lat2   [double], latitude pair 2.
+        *   @param _long2  [double], longitude pair 2.
+        *
+        *   @return [double] distance in miles.
+        */
+       private static double distance(double _lat1, double _lon1, double _lat2, double _lon2) {
+               double theta = _lon1 - _lon2;
+               double dist = Math.sin(deg2rad(_lat1)) * Math.sin(deg2rad(_lat2)) + Math.cos(deg2rad(_lat1)) * Math.cos(deg2rad(_lat2)) * Math.cos(deg2rad(theta));
+               dist = Math.acos(dist);
+               dist = rad2deg(dist);
+               dist = dist * 60 * 1.1515;
+               return (dist);
+       }
+
+
+       /** Static Method convert degrees to radians.
+        *   Adapted from https://www.geodatasource.com/developers/java
+        *
+        *   @param _degree  [double], degrees.
+        *
+        *   @return [double] radians value.
+        */
+       private static double deg2rad(double _degree) {
+               return _degree * 3.141592653589793 / 180.0;
+       }
+
+
+       /** Static Method convert radians to degrees.
+        *   Adapted from https://www.geodatasource.com/developers/java
+        *
+        *   @param _rad  [double], radians.
+        *
+        *   @return [double] degrees value.
+        */
+       private static double rad2deg(double _rad) {
+               return _rad * 180.0 / 3.141592653589793;
+       }
+
+
+
+       /*******************************************************************************************************************************************
+       **  Main Method used for testing
+       *******************************************************************************************************************************************/
+/*     public static void main(String[] arrstring) {
+               System.out.println("WE ARE RUNNING!");
+
+
+               try {
+                       IoTAddress devAddress = new IoTAddress("api.openweathermap.org");
+                       WeatherGrabber we = new WeatherGrabber(devAddress);
+
+                       //List<DayWeather> dw = we.getWeatherData(92130, 16);
+                       List<DayWeather> dw = we.getWeatherData(92612, 255);
+
+
+                       for (DayWeather day : dw) {
+                               System.out.println(day);
+                       }
+
+               } catch (Exception e) {
+
+               }
+       }*/
+}
+
+
diff --git a/benchmarks/IrrigationController/help_files/city_list_us.json b/benchmarks/IrrigationController/help_files/city_list_us.json
new file mode 100644 (file)
index 0000000..a14e7b0
--- /dev/null
@@ -0,0 +1,19972 @@
+{"_id":4070245,"name":"Jones Crossroads","country":"US","coord":{"lon":-85.484657,"lat":31.21073}}
+{"_id":4344544,"name":"Vernon Parish","country":"US","coord":{"lon":-93.183502,"lat":31.11685}}
+{"_id":4215307,"name":"Pennick","country":"US","coord":{"lon":-81.55899,"lat":31.313}}
+{"_id":5285039,"name":"Black Bear Spring","country":"US","coord":{"lon":-110.288139,"lat":31.386209}}
+{"_id":4673179,"name":"Bee House","country":"US","coord":{"lon":-98.081139,"lat":31.40266}}
+{"_id":4047656,"name":"Provo","country":"US","coord":{"lon":-94.107697,"lat":34.037609}}
+{"_id":5493998,"name":"Tejon","country":"US","coord":{"lon":-105.28611,"lat":34.58979}}
+{"_id":5815135,"name":"Washington","country":"US","coord":{"lon":-120.501472,"lat":47.500118}}
+{"_id":5391891,"name":"San Dimas","country":"US","coord":{"lon":-117.806732,"lat":34.106682}}
+{"_id":4056099,"name":"Coffee County","country":"US","coord":{"lon":-86.000221,"lat":31.41683}}
+{"_id":4151245,"name":"Clay County","country":"US","coord":{"lon":-81.833153,"lat":29.99968}}
+{"_id":4155535,"name":"Flagler County","country":"US","coord":{"lon":-81.291451,"lat":29.45859}}
+{"_id":4158449,"name":"Hernando County","country":"US","coord":{"lon":-82.458153,"lat":28.541941}}
+{"_id":4174301,"name":"Sumter County","country":"US","coord":{"lon":-82.083138,"lat":28.708599}}
+{"_id":4196508,"name":"Fulton County","country":"US","coord":{"lon":-84.449928,"lat":33.766769}}
+{"_id":4191014,"name":"DeKalb County","country":"US","coord":{"lon":-84.233253,"lat":33.750381}}
+{"_id":4255818,"name":"Clark County","country":"US","coord":{"lon":-85.761353,"lat":38.483398}}
+{"_id":4310411,"name":"Sylvania","country":"US","coord":{"lon":-85.87413,"lat":38.157009}}
+{"_id":4287837,"name":"Clark County","country":"US","coord":{"lon":-84.266602,"lat":37.98341}}
+{"_id":4347820,"name":"City of Baltimore","country":"US","coord":{"lon":-76.61219,"lat":39.290379}}
+{"_id":7198188,"name":"Cashell Estates","country":"US","coord":{"lon":-77.138702,"lat":39.137199}}
+{"_id":4372589,"name":"Wakely Terrace","country":"US","coord":{"lon":-76.334961,"lat":39.525661}}
+{"_id":4406835,"name":"Saint Charles County","country":"US","coord":{"lon":-90.733459,"lat":38.76672}}
+{"_id":4407084,"name":"City of Saint Louis","country":"US","coord":{"lon":-90.197891,"lat":38.62727}}
+{"_id":4422178,"name":"Coahoma County","country":"US","coord":{"lon":-90.567879,"lat":34.217892}}
+{"_id":4431425,"name":"Jackson County","country":"US","coord":{"lon":-88.6278,"lat":30.42325}}
+{"_id":4481511,"name":"Nash County","country":"US","coord":{"lon":-77.96637,"lat":35.96682}}
+{"_id":4475520,"name":"Lee County","country":"US","coord":{"lon":-79.183083,"lat":35.46682}}
+{"_id":4527624,"name":"Warren County","country":"US","coord":{"lon":-84.166603,"lat":39.433392}}
+{"_id":4534444,"name":"Creek County","country":"US","coord":{"lon":-96.400291,"lat":35.900082}}
+{"_id":4592843,"name":"Richland County","country":"US","coord":{"lon":-80.916481,"lat":34.016819}}
+{"_id":4735729,"name":"Taylor County","country":"US","coord":{"lon":-99.833702,"lat":32.300129}}
+{"_id":4697444,"name":"Hidalgo County","country":"US","coord":{"lon":-98.200287,"lat":26.333679}}
+{"_id":4740157,"name":"Washington County","country":"US","coord":{"lon":-96.400238,"lat":30.233549}}
+{"_id":4739690,"name":"Walker County","country":"US","coord":{"lon":-95.566887,"lat":30.73353}}
+{"_id":4703071,"name":"Kerr County","country":"US","coord":{"lon":-99.300323,"lat":30.050211}}
+{"_id":4744106,"name":"City of Alexandria","country":"US","coord":{"lon":-77.046921,"lat":38.80484}}
+{"_id":4749005,"name":"City of Bristol","country":"US","coord":{"lon":-82.188469,"lat":36.596489}}
+{"_id":4752046,"name":"City of Charlottesville","country":"US","coord":{"lon":-78.476677,"lat":38.029308}}
+{"_id":4752215,"name":"City of Chesapeake","country":"US","coord":{"lon":-76.312157,"lat":36.687649}}
+{"_id":4753684,"name":"City of Colonial Heights","country":"US","coord":{"lon":-77.410263,"lat":37.244041}}
+{"_id":4755298,"name":"City of Danville","country":"US","coord":{"lon":-79.39502,"lat":36.585972}}
+{"_id":4758109,"name":"City of Fairfax","country":"US","coord":{"lon":-77.306374,"lat":38.846218}}
+{"_id":4760084,"name":"City of Fredericksburg","country":"US","coord":{"lon":-77.460541,"lat":38.303181}}
+{"_id":4763237,"name":"City of Harrisonburg","country":"US","coord":{"lon":-78.868919,"lat":38.44957}}
+{"_id":4764849,"name":"City of Hopewell","country":"US","coord":{"lon":-77.287201,"lat":37.304321}}
+{"_id":4771099,"name":"City of Lynchburg","country":"US","coord":{"lon":-79.14225,"lat":37.41375}}
+{"_id":4771426,"name":"City of Manassas","country":"US","coord":{"lon":-77.475273,"lat":38.75095}}
+{"_id":4776037,"name":"City of Newport News","country":"US","coord":{"lon":-76.508011,"lat":37.062649}}
+{"_id":4776242,"name":"City of Norfolk","country":"US","coord":{"lon":-76.261879,"lat":36.891258}}
+{"_id":4778642,"name":"City of Petersburg","country":"US","coord":{"lon":-77.401932,"lat":37.227928}}
+{"_id":4780019,"name":"City of Portsmouth","country":"US","coord":{"lon":-76.354668,"lat":36.85487}}
+{"_id":4780851,"name":"City of Radford","country":"US","coord":{"lon":-80.576447,"lat":37.13179}}
+{"_id":4781756,"name":"City of Richmond","country":"US","coord":{"lon":-77.460258,"lat":37.553761}}
+{"_id":4782241,"name":"City of Roanoke","country":"US","coord":{"lon":-79.941429,"lat":37.270969}}
+{"_id":4784205,"name":"City of Salem","country":"US","coord":{"lon":-80.054764,"lat":37.293468}}
+{"_id":4788160,"name":"City of Suffolk","country":"US","coord":{"lon":-76.608009,"lat":36.708481}}
+{"_id":4787467,"name":"City of Staunton","country":"US","coord":{"lon":-79.071701,"lat":38.149578}}
+{"_id":4792534,"name":"City of Waynesboro","country":"US","coord":{"lon":-78.889473,"lat":38.06847}}
+{"_id":4794134,"name":"City of Winchester","country":"US","coord":{"lon":-78.16333,"lat":39.185661}}
+{"_id":5151606,"name":"Cuyahoga County","country":"US","coord":{"lon":-81.666519,"lat":41.433392}}
+{"_id":4899519,"name":"Lee County","country":"US","coord":{"lon":-89.283432,"lat":41.750591}}
+{"_id":4898722,"name":"Knox County","country":"US","coord":{"lon":-90.200119,"lat":40.933369}}
+{"_id":5004681,"name":"Ottawa County","country":"US","coord":{"lon":-86.000603,"lat":42.95002}}
+{"_id":4985190,"name":"Bay County","country":"US","coord":{"lon":-84.016647,"lat":43.73336}}
+{"_id":5000477,"name":"Macomb County","country":"US","coord":{"lon":-82.949928,"lat":42.700031}}
+{"_id":4997130,"name":"Ingham County","country":"US","coord":{"lon":-84.383301,"lat":42.60004}}
+{"_id":5009706,"name":"Shiawassee County","country":"US","coord":{"lon":-84.149971,"lat":42.950031}}
+{"_id":5128316,"name":"Nassau County","country":"US","coord":{"lon":-73.582901,"lat":40.75066}}
+{"_id":6941775,"name":"Kings County","country":"US","coord":{"lon":-73.949577,"lat":40.650101}}
+{"_id":5113792,"name":"Cortland County","country":"US","coord":{"lon":-76.082977,"lat":42.600071}}
+{"_id":5112738,"name":"City Line","country":"US","coord":{"lon":-73.887077,"lat":40.676208}}
+{"_id":5118116,"name":"Fulton County","country":"US","coord":{"lon":-74.449577,"lat":43.116741}}
+{"_id":5122534,"name":"Jamestown","country":"US","coord":{"lon":-79.235329,"lat":42.097}}
+{"_id":6332485,"name":"Queensbridge Houses","country":"US","coord":{"lon":-73.945,"lat":40.75528}}
+{"_id":7250946,"name":"Carnegie Hill","country":"US","coord":{"lon":-73.95472,"lat":40.783329}}
+{"_id":5133668,"name":"Rensselaer County","country":"US","coord":{"lon":-73.482887,"lat":42.716751}}
+{"_id":5161640,"name":"Mahoning County","country":"US","coord":{"lon":-80.766472,"lat":41.03339}}
+{"_id":5151896,"name":"Delaware County","country":"US","coord":{"lon":-83.000183,"lat":40.266731}}
+{"_id":5145576,"name":"Allen County","country":"US","coord":{"lon":-84.083282,"lat":40.76672}}
+{"_id":5153362,"name":"Erie County","country":"US","coord":{"lon":-82.599899,"lat":41.350052}}
+{"_id":5221078,"name":"Bristol County","country":"US","coord":{"lon":-71.271721,"lat":41.71677}}
+{"_id":5393068,"name":"Santa Cruz County","country":"US","coord":{"lon":-122.051071,"lat":37.066608}}
+{"_id":5391997,"name":"San Francisco County","country":"US","coord":{"lon":-122.45108,"lat":37.766602}}
+{"_id":5423573,"name":"Grand Junction","country":"US","coord":{"lon":-108.550652,"lat":39.063869}}
+{"_id":5525886,"name":"Maverick County","country":"US","coord":{"lon":-100.350349,"lat":28.76692}}
+{"_id":5522430,"name":"Gray County","country":"US","coord":{"lon":-100.802002,"lat":35.416698}}
+{"_id":5128638,"name":"New York","country":"US","coord":{"lon":-75.499901,"lat":43.000351}}
+{"_id":7169710,"name":"City of Cape Canaveral","country":"US","coord":{"lon":-80.60567,"lat":28.39367}}
+{"_id":5415040,"name":"Broomfield County","country":"US","coord":{"lon":-105.086647,"lat":39.92054}}
+{"_id":5419396,"name":"Denver County","country":"US","coord":{"lon":-104.950539,"lat":39.666649}}
+{"_id":5420241,"name":"Durango","country":"US","coord":{"lon":-107.880074,"lat":37.27528}}
+{"_id":5431716,"name":"Montrose County","country":"US","coord":{"lon":-108.267303,"lat":38.416649}}
+{"_id":5445820,"name":"Liberal","country":"US","coord":{"lon":-100.920998,"lat":37.043079}}
+{"_id":5478585,"name":"McKinley County","country":"US","coord":{"lon":-109.033981,"lat":35.900009}}
+{"_id":5507669,"name":"Lyon County","country":"US","coord":{"lon":-119.126259,"lat":39.000198}}
+{"_id":5508180,"name":"Mesquite","country":"US","coord":{"lon":-114.067192,"lat":36.805531}}
+{"_id":5520910,"name":"Ector County","country":"US","coord":{"lon":-102.55043,"lat":31.866791}}
+{"_id":5781925,"name":"Spring Circle","country":"US","coord":{"lon":-111.854927,"lat":40.57217}}
+{"_id":5784685,"name":"Wheadon Acres","country":"US","coord":{"lon":-111.96299,"lat":40.560501}}
+{"_id":5790179,"name":"Clark County","country":"US","coord":{"lon":-122.484543,"lat":45.799839}}
+{"_id":5820705,"name":"Casper","country":"US","coord":{"lon":-106.31308,"lat":42.866631}}
+{"_id":4159872,"name":"Islandia","country":"US","coord":{"lon":-80.252548,"lat":25.37817}}
+{"_id":4736286,"name":"Texas","country":"US","coord":{"lon":-99.25061,"lat":31.250441}}
+{"_id":4676547,"name":"Brooks County","country":"US","coord":{"lon":-98.23362,"lat":27.033661}}
+{"_id":4714936,"name":"Noria Willie","country":"US","coord":{"lon":-98.127228,"lat":27.0856}}
+{"_id":4158643,"name":"Highlands County","country":"US","coord":{"lon":-81.349792,"lat":27.366989}}
+{"_id":4178270,"name":"Wild Island","country":"US","coord":{"lon":-81.203682,"lat":27.37282}}
+{"_id":4158712,"name":"Hillsborough County","country":"US","coord":{"lon":-82.349808,"lat":27.916969}}
+{"_id":7217562,"name":"Lindsey","country":"US","coord":{"lon":-82.211403,"lat":28.005199}}
+{"_id":4722147,"name":"Refugio County","country":"US","coord":{"lon":-97.166939,"lat":28.33362}}
+{"_id":4684064,"name":"Cranell","country":"US","coord":{"lon":-97.392769,"lat":28.16807}}
+{"_id":4678165,"name":"Calhoun County","country":"US","coord":{"lon":-96.61692,"lat":28.466949}}
+{"_id":4331987,"name":"Louisiana","country":"US","coord":{"lon":-92.000397,"lat":31.000469}}
+{"_id":4337452,"name":"Plaquemines Parish","country":"US","coord":{"lon":-89.700058,"lat":29.45022}}
+{"_id":4318404,"name":"Burrwood (historical)","country":"US","coord":{"lon":-89.377548,"lat":28.96829}}
+{"_id":4341715,"name":"Slagle","country":"US","coord":{"lon":-93.12738,"lat":31.20241}}
+{"_id":4056592,"name":"Conecuh County","country":"US","coord":{"lon":-86.983307,"lat":31.466829}}
+{"_id":4053940,"name":"Castleberry","country":"US","coord":{"lon":-87.022469,"lat":31.299061}}
+{"_id":4057517,"name":"Crenshaw County","country":"US","coord":{"lon":-86.316628,"lat":31.73349}}
+{"_id":4059229,"name":"Dozier","country":"US","coord":{"lon":-86.36496,"lat":31.492109}}
+{"_id":4695945,"name":"Hamilton County","country":"US","coord":{"lon":-98.083641,"lat":31.71682}}
+{"_id":4717770,"name":"Parsley Crossing","country":"US","coord":{"lon":-98.112259,"lat":31.567659}}
+{"_id":5308878,"name":"Pima County","country":"US","coord":{"lon":-112.003464,"lat":32.000351}}
+{"_id":7262440,"name":"Valencia West","country":"US","coord":{"lon":-111.114143,"lat":32.132381}}
+{"_id":5319409,"name":"Vanar","country":"US","coord":{"lon":-109.095062,"lat":32.241192}}
+{"_id":4316180,"name":"Bedford","country":"US","coord":{"lon":-91.015106,"lat":32.240978}}
+{"_id":5454967,"name":"Alvarado","country":"US","coord":{"lon":-106.237213,"lat":32.13649}}
+{"_id":4445717,"name":"Shavers (historical)","country":"US","coord":{"lon":-88.530037,"lat":33.25568}}
+{"_id":5524819,"name":"Lakeview","country":"US","coord":{"lon":-102.050453,"lat":33.326481}}
+{"_id":4180067,"name":"Apollo (historical)","country":"US","coord":{"lon":-83.527672,"lat":33.36541}}
+{"_id":4694710,"name":"Grayson County","country":"US","coord":{"lon":-96.683601,"lat":33.616772}}
+{"_id":5368381,"name":"Los Angeles County","country":"US","coord":{"lon":-118.200912,"lat":34.366661}}
+{"_id":4187459,"name":"Chattooga County","country":"US","coord":{"lon":-85.33329,"lat":34.466751}}
+{"_id":4224239,"name":"Sprite","country":"US","coord":{"lon":-85.39579,"lat":34.288429}}
+{"_id":4589213,"name":"Newberry County","country":"US","coord":{"lon":-81.616501,"lat":34.30014}}
+{"_id":4587774,"name":"Mount Bethel (historical)","country":"US","coord":{"lon":-81.562332,"lat":34.3382}}
+{"_id":4583989,"name":"Kershaw County","country":"US","coord":{"lon":-80.56646,"lat":34.45015}}
+{"_id":5306372,"name":"Nelson","country":"US","coord":{"lon":-113.320213,"lat":35.51416}}
+{"_id":4550954,"name":"Schoolton","country":"US","coord":{"lon":-96.458618,"lat":35.391739}}
+{"_id":4460324,"name":"Chatham County","country":"US","coord":{"lon":-79.266411,"lat":35.700142}}
+{"_id":4619773,"name":"Dyer County","country":"US","coord":{"lon":-89.40007,"lat":36.050072}}
+{"_id":4652680,"name":"Rehoboth","country":"US","coord":{"lon":-89.25563,"lat":36.032291}}
+{"_id":4896861,"name":"Illinois","country":"US","coord":{"lon":-89.250366,"lat":40.00032}}
+{"_id":4748806,"name":"Breaks","country":"US","coord":{"lon":-82.280983,"lat":37.29594}}
+{"_id":5341170,"name":"Curry Village","country":"US","coord":{"lon":-119.572662,"lat":37.73687}}
+{"_id":5413481,"name":"Bent County","country":"US","coord":{"lon":-103.067146,"lat":37.966671}}
+{"_id":5436536,"name":"Riverdale","country":"US","coord":{"lon":-103.316597,"lat":38.05862}}
+{"_id":5435436,"name":"Prowers County","country":"US","coord":{"lon":-102.400467,"lat":37.966679}}
+{"_id":4048572,"name":"Rowan County","country":"US","coord":{"lon":-83.433243,"lat":38.183411}}
+{"_id":5354590,"name":"Guadalcanal Village","country":"US","coord":{"lon":-122.293861,"lat":38.11853}}
+{"_id":5539525,"name":"Garfield County","country":"US","coord":{"lon":-111.501282,"lat":37.750542}}
+{"_id":5446275,"name":"Ravanna","country":"US","coord":{"lon":-100.382362,"lat":38.15974}}
+{"_id":5435465,"name":"Pueblo County","country":"US","coord":{"lon":-104.483856,"lat":38.183338}}
+{"_id":5435047,"name":"Poncha Springs","country":"US","coord":{"lon":-106.07724,"lat":38.512779}}
+{"_id":5376101,"name":"Napa County","country":"US","coord":{"lon":-122.334419,"lat":38.483238}}
+{"_id":5386729,"name":"Redbud Park (historical)","country":"US","coord":{"lon":-122.137199,"lat":38.519348}}
+{"_id":5396498,"name":"Sloughhouse","country":"US","coord":{"lon":-121.19384,"lat":38.495739}}
+{"_id":5420926,"name":"El Paso County","country":"US","coord":{"lon":-104.517189,"lat":38.833328}}
+{"_id":5442076,"name":"Truckton","country":"US","coord":{"lon":-104.182182,"lat":38.738049}}
+{"_id":5445498,"name":"Grainfield","country":"US","coord":{"lon":-100.465141,"lat":39.113621}}
+{"_id":5427526,"name":"Kit Carson County","country":"US","coord":{"lon":-102.567139,"lat":39.299992}}
+{"_id":5514336,"name":"Vanderbilt (historical)","country":"US","coord":{"lon":-115.978394,"lat":39.424648}}
+{"_id":5446632,"name":"Thomas County","country":"US","coord":{"lon":-101.05043,"lat":39.349998}}
+{"_id":5424440,"name":"Harris Park","country":"US","coord":{"lon":-105.491112,"lat":39.511662}}
+{"_id":5095971,"name":"Brindletown","country":"US","coord":{"lon":-74.50515,"lat":40.04734}}
+{"_id":5576103,"name":"Crisman","country":"US","coord":{"lon":-105.361382,"lat":40.040821}}
+{"_id":5583173,"name":"Ward","country":"US","coord":{"lon":-105.508331,"lat":40.072208}}
+{"_id":5074889,"name":"Pawnee City","country":"US","coord":{"lon":-96.154449,"lat":40.10833}}
+{"_id":5162774,"name":"Miami County","country":"US","coord":{"lon":-84.233276,"lat":40.050049}}
+{"_id":5162767,"name":"Meyers (historical)","country":"US","coord":{"lon":-84.317169,"lat":40.131439}}
+{"_id":5565500,"name":"Humboldt County","country":"US","coord":{"lon":-123.917831,"lat":40.666519}}
+{"_id":5565253,"name":"Honeydew","country":"US","coord":{"lon":-124.122818,"lat":40.244308}}
+{"_id":5171871,"name":"Shelby County","country":"US","coord":{"lon":-84.183281,"lat":40.316719}}
+{"_id":7729130,"name":"Lakeside Village","country":"US","coord":{"lon":-84.184998,"lat":40.293892}}
+{"_id":5560570,"name":"Bull Creek","country":"US","coord":{"lon":-124.026428,"lat":40.33569}}
+{"_id":5444907,"name":"Yuma County","country":"US","coord":{"lon":-102.433807,"lat":39.983318}}
+{"_id":5771084,"name":"Barro","country":"US","coord":{"lon":-113.488876,"lat":40.726879}}
+{"_id":5081111,"name":"Verona","country":"US","coord":{"lon":-97.966164,"lat":40.553619}}
+{"_id":5171643,"name":"Seneca County","country":"US","coord":{"lon":-83.116577,"lat":41.116718}}
+{"_id":5172848,"name":"Springville","country":"US","coord":{"lon":-83.386589,"lat":41.009781}}
+{"_id":5696463,"name":"Jacinto","country":"US","coord":{"lon":-103.404099,"lat":41.225811}}
+{"_id":4861712,"name":"Indiana","country":"US","coord":{"lon":-93.0252,"lat":41.204441}}
+{"_id":5205930,"name":"Pike County","country":"US","coord":{"lon":-75.124893,"lat":41.50037}}
+{"_id":4861743,"name":"Indiantown (historical)","country":"US","coord":{"lon":-95.108047,"lat":41.312489}}
+{"_id":5825405,"name":"Fort LaClede (historical)","country":"US","coord":{"lon":-108.389267,"lat":41.415241}}
+{"_id":4880695,"name":"Warren County","country":"US","coord":{"lon":-93.550217,"lat":41.333328}}
+{"_id":4870622,"name":"Palmyra","country":"US","coord":{"lon":-93.438271,"lat":41.4361}}
+{"_id":4926802,"name":"Steubenville","country":"US","coord":{"lon":-85.022743,"lat":41.532269}}
+{"_id":5562484,"name":"Del Norte County","country":"US","coord":{"lon":-123.901176,"lat":41.699841}}
+{"_id":5128148,"name":"Mundale","country":"US","coord":{"lon":-75.049606,"lat":42.25481}}
+{"_id":5823980,"name":"Dwyer Junction","country":"US","coord":{"lon":-104.994972,"lat":42.234692}}
+{"_id":5610054,"name":"Three Creek","country":"US","coord":{"lon":-115.1595,"lat":42.071301}}
+{"_id":4932165,"name":"Camp Wyoma","country":"US","coord":{"lon":-73.125381,"lat":42.428421}}
+{"_id":5138846,"name":"South Gilboa Station","country":"US","coord":{"lon":-74.562653,"lat":42.410912}}
+{"_id":5138935,"name":"South New Berlin","country":"US","coord":{"lon":-75.385178,"lat":42.529518}}
+{"_id":4936231,"name":"Farnams","country":"US","coord":{"lon":-73.185661,"lat":42.541752}}
+{"_id":4997811,"name":"Kalamo","country":"US","coord":{"lon":-85.012772,"lat":42.542809}}
+{"_id":5586500,"name":"Bonneville County","country":"US","coord":{"lon":-111.50106,"lat":43.41658}}
+{"_id":5609454,"name":"Swan Valley","country":"US","coord":{"lon":-111.341621,"lat":43.456032}}
+{"_id":5094264,"name":"Warren","country":"US","coord":{"lon":-71.892029,"lat":43.923119}}
+{"_id":5590266,"name":"Crystal (historical)","country":"US","coord":{"lon":-114.32589,"lat":44.267422}}
+{"_id":5117867,"name":"Franklin County","country":"US","coord":{"lon":-74.349609,"lat":44.650051}}
+{"_id":5587585,"name":"Cabarton","country":"US","coord":{"lon":-116.040131,"lat":44.435452}}
+{"_id":5598464,"name":"Lemhi County","country":"US","coord":{"lon":-114.00119,"lat":45.666592}}
+{"_id":5584508,"name":"Baker","country":"US","coord":{"lon":-113.734512,"lat":45.09465}}
+{"_id":5259487,"name":"Langlade County","country":"US","coord":{"lon":-89.05011,"lat":45.250519}}
+{"_id":5016060,"name":"Albion Center","country":"US","coord":{"lon":-94.073593,"lat":45.17691}}
+{"_id":5731315,"name":"Hilgard","country":"US","coord":{"lon":-118.227997,"lat":45.35207}}
+{"_id":5032867,"name":"Kandiyohi County","country":"US","coord":{"lon":-95.000839,"lat":45.133301}}
+{"_id":5606338,"name":"Sampson","country":"US","coord":{"lon":-116.008469,"lat":45.51767}}
+{"_id":5692786,"name":"Walser Crossing","country":"US","coord":{"lon":-103.596298,"lat":46.619179}}
+{"_id":5796126,"name":"Grays Harbor County","country":"US","coord":{"lon":-123.83461,"lat":47.083149}}
+{"_id":5811704,"name":"Spokane County","country":"US","coord":{"lon":-117.367706,"lat":47.616562}}
+{"_id":5812148,"name":"Stevens County","country":"US","coord":{"lon":-117.834419,"lat":48.433231}}
+{"_id":7260215,"name":"Tyndall Air Force Base","country":"US","coord":{"lon":-85.607307,"lat":30.08535}}
+{"_id":4345638,"name":"Weil","country":"US","coord":{"lon":-92.560699,"lat":31.31185}}
+{"_id":5039807,"name":"Noyes","country":"US","coord":{"lon":-97.204514,"lat":48.99749}}
+{"_id":5790289,"name":"Clearbrook","country":"US","coord":{"lon":-122.32238,"lat":48.978729}}
+{"_id":5322021,"name":"Young","country":"US","coord":{"lon":-110.963737,"lat":34.101429}}
+{"_id":4658872,"name":"South Dyersburg","country":"US","coord":{"lon":-89.391182,"lat":36.01952}}
+{"_id":4603330,"name":"Atwood","country":"US","coord":{"lon":-88.678108,"lat":35.973122}}
+{"_id":5365687,"name":"Le Grand","country":"US","coord":{"lon":-120.24823,"lat":37.22855}}
+{"_id":5425180,"name":"Hoehne","country":"US","coord":{"lon":-104.381088,"lat":37.281132}}
+{"_id":5386335,"name":"Ravenswood","country":"US","coord":{"lon":-122.135239,"lat":37.47633}}
+{"_id":4521978,"name":"Prospect","country":"US","coord":{"lon":-83.563812,"lat":39.135071}}
+{"_id":5784492,"name":"Wendover","country":"US","coord":{"lon":-114.037514,"lat":40.737148}}
+{"_id":4920512,"name":"Fremont","country":"US","coord":{"lon":-84.932739,"lat":41.730881}}
+{"_id":5120956,"name":"Hogansburg","country":"US","coord":{"lon":-74.663239,"lat":44.973942}}
+{"_id":5039576,"name":"North Redwood","country":"US","coord":{"lon":-95.094437,"lat":44.56329}}
+{"_id":5036727,"name":"Marshall","country":"US","coord":{"lon":-95.788353,"lat":44.446899}}
+{"_id":5040864,"name":"Parkwood Estates","country":"US","coord":{"lon":-95.084717,"lat":45.130001}}
+{"_id":5266230,"name":"Park Falls","country":"US","coord":{"lon":-90.441551,"lat":45.934399}}
+{"_id":5046026,"name":"Sauk Centre","country":"US","coord":{"lon":-94.952522,"lat":45.737461}}
+{"_id":4404807,"name":"Pulaski County","country":"US","coord":{"lon":-92.200172,"lat":37.83337}}
+{"_id":5758058,"name":"Umatilla County","country":"US","coord":{"lon":-118.50135,"lat":45.50013}}
+{"_id":5053645,"name":"Zimmerman Terrace","country":"US","coord":{"lon":-93.583611,"lat":45.448608}}
+{"_id":5398597,"name":"Stanislaus County","country":"US","coord":{"lon":-121.001602,"lat":37.549931}}
+{"_id":5094497,"name":"West Brookline","country":"US","coord":{"lon":-71.679237,"lat":42.736198}}
+{"_id":5421327,"name":"Estabrook","country":"US","coord":{"lon":-105.429443,"lat":39.383041}}
+{"_id":5231992,"name":"Spink County","country":"US","coord":{"lon":-98.317039,"lat":44.936081}}
+{"_id":5332628,"name":"Calaveras County","country":"US","coord":{"lon":-120.584373,"lat":38.166592}}
+{"_id":5343792,"name":"Douds Landing","country":"US","coord":{"lon":-120.32547,"lat":38.2127}}
+{"_id":4163123,"name":"Macon","country":"US","coord":{"lon":-84.279068,"lat":30.49464}}
+{"_id":4186876,"name":"Cedar Hill","country":"US","coord":{"lon":-83.76545,"lat":34.022331}}
+{"_id":5392329,"name":"San Luis Obispo County","country":"US","coord":{"lon":-120.534332,"lat":35.366638}}
+{"_id":5530531,"name":"Shafter","country":"US","coord":{"lon":-104.303253,"lat":29.820169}}
+{"_id":4261996,"name":"Navilleton","country":"US","coord":{"lon":-85.938583,"lat":38.381729}}
+{"_id":4919627,"name":"Deming","country":"US","coord":{"lon":-86.098602,"lat":40.115311}}
+{"_id":4978496,"name":"Shermans Corner","country":"US","coord":{"lon":-69.006416,"lat":44.45813}}
+{"_id":5160581,"name":"Lemoyne","country":"US","coord":{"lon":-83.474098,"lat":41.495892}}
+{"_id":4177409,"name":"Walton County","country":"US","coord":{"lon":-86.166611,"lat":30.62575}}
+{"_id":4165763,"name":"New Harmony","country":"US","coord":{"lon":-86.279953,"lat":30.853519}}
+{"_id":4343122,"name":"Tangipahoa Parish","country":"US","coord":{"lon":-90.400093,"lat":30.666849}}
+{"_id":4992137,"name":"Emmet County","country":"US","coord":{"lon":-84.916718,"lat":45.53334}}
+{"_id":4987969,"name":"Canby Corners","country":"US","coord":{"lon":-84.915329,"lat":45.63612}}
+{"_id":5755890,"name":"Talent","country":"US","coord":{"lon":-122.788651,"lat":42.245682}}
+{"_id":4880327,"name":"Volga","country":"US","coord":{"lon":-91.540977,"lat":42.80471}}
+{"_id":4693922,"name":"Goliad County","country":"US","coord":{"lon":-97.433601,"lat":28.65027}}
+{"_id":5205669,"name":"Perry County","country":"US","coord":{"lon":-77.249992,"lat":40.500359}}
+{"_id":5186715,"name":"Dellville","country":"US","coord":{"lon":-77.115807,"lat":40.363972}}
+{"_id":5021676,"name":"Cloverleaf Mobile Home Community","country":"US","coord":{"lon":-94.138893,"lat":45.57222}}
+{"_id":7261046,"name":"Cayuse","country":"US","coord":{"lon":-118.566116,"lat":45.67643}}
+{"_id":4085392,"name":"Ramer","country":"US","coord":{"lon":-86.221352,"lat":32.05043}}
+{"_id":4905232,"name":"Palm Beach","country":"US","coord":{"lon":-88.197311,"lat":42.37669}}
+{"_id":4917545,"name":"Alida","country":"US","coord":{"lon":-86.903084,"lat":41.510601}}
+{"_id":4456938,"name":"Brake","country":"US","coord":{"lon":-77.737747,"lat":35.92321}}
+{"_id":4122327,"name":"Mound City","country":"US","coord":{"lon":-90.129257,"lat":35.190369}}
+{"_id":4935951,"name":"Essex County","country":"US","coord":{"lon":-70.832832,"lat":42.666759}}
+{"_id":4405434,"name":"Republic","country":"US","coord":{"lon":-93.480186,"lat":37.120049}}
+{"_id":5078878,"name":"Shelton","country":"US","coord":{"lon":-98.730911,"lat":40.779179}}
+{"_id":5551665,"name":"Arizona City","country":"US","coord":{"lon":-111.670959,"lat":32.75589}}
+{"_id":4368320,"name":"Saint Mary's County","country":"US","coord":{"lon":-76.616348,"lat":38.300129}}
+{"_id":7208522,"name":"Pin Oak Village","country":"US","coord":{"lon":-95.803001,"lat":29.7665}}
+{"_id":4578104,"name":"Fairtraid","country":"US","coord":{"lon":-78.979477,"lat":33.873779}}
+{"_id":4341377,"name":"Sheltons","country":"US","coord":{"lon":-91.907349,"lat":32.8293}}
+{"_id":4422833,"name":"Country Club Subdivision","country":"US","coord":{"lon":-88.806442,"lat":33.423458}}
+{"_id":4712711,"name":"Mount Enterprise","country":"US","coord":{"lon":-94.681038,"lat":31.91795}}
+{"_id":5424865,"name":"Hermosa","country":"US","coord":{"lon":-107.835342,"lat":37.415279}}
+{"_id":5363907,"name":"La Fetra","country":"US","coord":{"lon":-117.881447,"lat":34.138901}}
+{"_id":5064432,"name":"Boone County","country":"US","coord":{"lon":-98.083672,"lat":41.700008}}
+{"_id":7201401,"name":"Carlyle West","country":"US","coord":{"lon":-73.830559,"lat":42.935558}}
+{"_id":5139023,"name":"South Westerlo","country":"US","coord":{"lon":-74.027077,"lat":42.447861}}
+{"_id":4461697,"name":"Contentnea Junction","country":"US","coord":{"lon":-77.93248,"lat":35.678211}}
+{"_id":4475980,"name":"Lincoln Heights","country":"US","coord":{"lon":-77.904709,"lat":35.69405}}
+{"_id":4527720,"name":"Waterloo","country":"US","coord":{"lon":-82.784897,"lat":39.83979}}
+{"_id":5268838,"name":"Richfield","country":"US","coord":{"lon":-88.193977,"lat":43.256119}}
+{"_id":4599503,"name":"Vaughans Crossroads","country":"US","coord":{"lon":-80.102287,"lat":34.208771}}
+{"_id":4421547,"name":"Choctaw County","country":"US","coord":{"lon":-89.237572,"lat":33.340401}}
+{"_id":5312572,"name":"Saint David","country":"US","coord":{"lon":-110.214241,"lat":31.904249}}
+{"_id":4723416,"name":"Rockwell","country":"US","coord":{"lon":-95.549683,"lat":33.591221}}
+{"_id":4919277,"name":"Cook","country":"US","coord":{"lon":-87.469757,"lat":41.377258}}
+{"_id":4985016,"name":"Barry County","country":"US","coord":{"lon":-85.316673,"lat":42.60004}}
+{"_id":5273134,"name":"Sidney","country":"US","coord":{"lon":-90.638748,"lat":44.552738}}
+{"_id":4494053,"name":"Sunny View","country":"US","coord":{"lon":-82.187889,"lat":35.374279}}
+{"_id":4988619,"name":"Cheboygan County","country":"US","coord":{"lon":-84.500587,"lat":45.450008}}
+{"_id":4913764,"name":"Tomahawk Bluff","country":"US","coord":{"lon":-89.08342,"lat":41.380589}}
+{"_id":4290651,"name":"Dykes","country":"US","coord":{"lon":-84.435768,"lat":37.068138}}
+{"_id":7247870,"name":"Cozy Acres","country":"US","coord":{"lon":-81.63694,"lat":40.658329}}
+{"_id":5723848,"name":"Drake Crossing","country":"US","coord":{"lon":-122.655922,"lat":44.925961}}
+{"_id":5564102,"name":"Gas Point","country":"US","coord":{"lon":-122.534462,"lat":40.415428}}
+{"_id":4926474,"name":"Sloan","country":"US","coord":{"lon":-87.476128,"lat":40.301979}}
+{"_id":5340687,"name":"Creston","country":"US","coord":{"lon":-120.523773,"lat":35.51886}}
+{"_id":4364519,"name":"Oliver Beach","country":"US","coord":{"lon":-76.342743,"lat":39.37289}}
+{"_id":5128581,"name":"New York","country":"US","coord":{"lon":-74.005966,"lat":40.714272}}
+{"_id":4179320,"name":"Albany","country":"US","coord":{"lon":-84.155739,"lat":31.57851}}
+{"_id":4351021,"name":"Charles County","country":"US","coord":{"lon":-76.983032,"lat":38.483459}}
+{"_id":4532136,"name":"Canadian County","country":"US","coord":{"lon":-97.983658,"lat":35.533379}}
+{"_id":4703486,"name":"Kleberg County","country":"US","coord":{"lon":-97.716942,"lat":27.433649}}
+{"_id":4885392,"name":"Boone County","country":"US","coord":{"lon":-88.816772,"lat":42.333351}}
+{"_id":5046749,"name":"Scott County","country":"US","coord":{"lon":-93.500793,"lat":44.633301}}
+{"_id":5141784,"name":"Ulster County","country":"US","coord":{"lon":-74.250153,"lat":41.88343}}
+{"_id":5128594,"name":"New York County","country":"US","coord":{"lon":-73.966248,"lat":40.783428}}
+{"_id":5217179,"name":"Verona","country":"US","coord":{"lon":-79.843102,"lat":40.506458}}
+{"_id":5251040,"name":"Dunn County","country":"US","coord":{"lon":-91.883507,"lat":44.949959}}
+{"_id":5430806,"name":"Mesa County","country":"US","coord":{"lon":-108.467308,"lat":39.033321}}
+{"_id":5417258,"name":"Clifton","country":"US","coord":{"lon":-108.448982,"lat":39.09193}}
+{"_id":5709906,"name":"Washoe County","country":"US","coord":{"lon":-119.626312,"lat":40.750179}}
+{"_id":5528613,"name":"Potter County","country":"US","coord":{"lon":-101.900459,"lat":35.416721}}
+{"_id":5523520,"name":"Howard County","country":"US","coord":{"lon":-101.450401,"lat":32.300121}}
+{"_id":4106979,"name":"Craighead County","country":"US","coord":{"lon":-90.650108,"lat":35.816738}}
+{"_id":7232148,"name":"Pleasant Prairie Mobile Home Court","country":"US","coord":{"lon":-87.950829,"lat":42.581669}}
+{"_id":5278089,"name":"Waupaca County","country":"US","coord":{"lon":-88.983437,"lat":44.466648}}
+{"_id":5813521,"name":"Thurston County","country":"US","coord":{"lon":-122.817909,"lat":46.916489}}
+{"_id":5235681,"name":"East Clarendon","country":"US","coord":{"lon":-72.938988,"lat":43.524792}}
+{"_id":5527151,"name":"Nolan County","country":"US","coord":{"lon":-100.417053,"lat":32.300121}}
+{"_id":7209040,"name":"Allen Farms","country":"US","coord":{"lon":-95.291199,"lat":29.6409}}
+{"_id":7208536,"name":"Pinewood Place","country":"US","coord":{"lon":-95.556198,"lat":30.080099}}
+{"_id":5528185,"name":"Pecos County","country":"US","coord":{"lon":-102.750992,"lat":30.75071}}
+{"_id":5525208,"name":"Little Mexico Colonia","country":"US","coord":{"lon":-102.878487,"lat":30.918209}}
+{"_id":4682392,"name":"Coleman County","country":"US","coord":{"lon":-99.45034,"lat":31.78348}}
+{"_id":5712716,"name":"Basque","country":"US","coord":{"lon":-117.868477,"lat":42.410721}}
+{"_id":5717316,"name":"Cairo","country":"US","coord":{"lon":-117.009048,"lat":43.995998}}
+{"_id":5736643,"name":"Lincoln County","country":"US","coord":{"lon":-123.834557,"lat":44.666512}}
+{"_id":5731612,"name":"Holiday Beach","country":"US","coord":{"lon":-124.068169,"lat":44.567619}}
+{"_id":4543342,"name":"Muskogee County","country":"US","coord":{"lon":-95.33358,"lat":35.583431}}
+{"_id":4540737,"name":"Lawton","country":"US","coord":{"lon":-98.390327,"lat":34.608688}}
+{"_id":4537289,"name":"Frederick","country":"US","coord":{"lon":-99.01841,"lat":34.392029}}
+{"_id":4529531,"name":"Artillery Village","country":"US","coord":{"lon":-98.41394,"lat":34.638962}}
+{"_id":4539265,"name":"Imo","country":"US","coord":{"lon":-97.977837,"lat":36.35392}}
+{"_id":4531980,"name":"Calera","country":"US","coord":{"lon":-96.428596,"lat":33.93454}}
+{"_id":4538808,"name":"Hird","country":"US","coord":{"lon":-96.651962,"lat":34.810638}}
+{"_id":8063054,"name":"White Hill","country":"US","coord":{"lon":-81.4813,"lat":41.57674}}
+{"_id":5148672,"name":"Bulah","country":"US","coord":{"lon":-80.668411,"lat":41.782001}}
+{"_id":5139942,"name":"Stoodley Corners","country":"US","coord":{"lon":-73.933182,"lat":42.868961}}
+{"_id":5514318,"name":"Valley View","country":"US","coord":{"lon":-117.224533,"lat":38.068272}}
+{"_id":5512515,"name":"Sloan","country":"US","coord":{"lon":-115.217216,"lat":35.943588}}
+{"_id":4500561,"name":"Atlantic County","country":"US","coord":{"lon":-74.666267,"lat":39.466782}}
+{"_id":4459620,"name":"Catherine Lake","country":"US","coord":{"lon":-77.563858,"lat":34.817661}}
+{"_id":7122887,"name":"Mobile Court East","country":"US","coord":{"lon":-95.748329,"lat":48.84861}}
+{"_id":5030862,"name":"Hubbard County","country":"US","coord":{"lon":-94.900291,"lat":47.09996}}
+{"_id":5024544,"name":"Douglas County","country":"US","coord":{"lon":-95.450317,"lat":45.933289}}
+{"_id":4929772,"name":"Barnstable County","country":"US","coord":{"lon":-70.249458,"lat":41.666779}}
+{"_id":5733534,"name":"Jefferson County","country":"US","coord":{"lon":-121.334488,"lat":44.633171}}
+{"_id":5738690,"name":"Madras","country":"US","coord":{"lon":-121.129494,"lat":44.63345}}
+{"_id":4858159,"name":"Gas Light Mobile Home Villa","country":"US","coord":{"lon":-92.41658,"lat":42.54137}}
+{"_id":4857406,"name":"Forest City","country":"US","coord":{"lon":-93.637161,"lat":43.262459}}
+{"_id":4167465,"name":"Page Park","country":"US","coord":{"lon":-81.86203,"lat":26.579241}}
+{"_id":7190149,"name":"Ocean Waterway Mobile Home Park","country":"US","coord":{"lon":-80.158791,"lat":26.059799}}
+{"_id":7150586,"name":"Countryside","country":"US","coord":{"lon":-105.119438,"lat":39.88583}}
+{"_id":5427691,"name":"La Fruto","country":"US","coord":{"lon":-105.898628,"lat":37.41473}}
+{"_id":5364038,"name":"La Patera","country":"US","coord":{"lon":-119.842079,"lat":34.4375}}
+{"_id":5377708,"name":"North Norton","country":"US","coord":{"lon":-117.252823,"lat":34.105572}}
+{"_id":5398168,"name":"Spreckels Junction","country":"US","coord":{"lon":-121.630783,"lat":36.658291}}
+{"_id":5323121,"name":"Alisal","country":"US","coord":{"lon":-121.617722,"lat":36.679131}}
+{"_id":5323012,"name":"Alessandro","country":"US","coord":{"lon":-117.270317,"lat":33.886131}}
+{"_id":5325943,"name":"Ballou","country":"US","coord":{"lon":-117.607002,"lat":34.049179}}
+{"_id":5331874,"name":"Burdell","country":"US","coord":{"lon":-122.565262,"lat":38.15797}}
+{"_id":5372844,"name":"Middleton","country":"US","coord":{"lon":-122.263031,"lat":38.206581}}
+{"_id":5342441,"name":"Del Rey Oaks","country":"US","coord":{"lon":-121.834953,"lat":36.593288}}
+{"_id":5371068,"name":"Mather Field","country":"US","coord":{"lon":-121.29689,"lat":38.56657}}
+{"_id":5332698,"name":"Calexico","country":"US","coord":{"lon":-115.498878,"lat":32.678951}}
+{"_id":5321473,"name":"Winslow","country":"US","coord":{"lon":-110.697357,"lat":35.024189}}
+{"_id":4059870,"name":"East Florence","country":"US","coord":{"lon":-87.649467,"lat":34.809528}}
+{"_id":4053062,"name":"Calhoun County","country":"US","coord":{"lon":-85.849968,"lat":33.750381}}
+{"_id":4081914,"name":"Oxford","country":"US","coord":{"lon":-85.834961,"lat":33.614269}}
+{"_id":4120792,"name":"Maumelle","country":"US","coord":{"lon":-92.40432,"lat":34.86676}}
+{"_id":4152574,"name":"Cutler Ridge","country":"US","coord":{"lon":-80.346718,"lat":25.58066}}
+{"_id":4156018,"name":"Fort Pierce","country":"US","coord":{"lon":-80.325607,"lat":27.446711}}
+{"_id":4161178,"name":"Lake Butler","country":"US","coord":{"lon":-81.540909,"lat":28.501671}}
+{"_id":4163049,"name":"Lynn Haven","country":"US","coord":{"lon":-85.648262,"lat":30.24548}}
+{"_id":4166195,"name":"North Fort Myers","country":"US","coord":{"lon":-81.880089,"lat":26.66729}}
+{"_id":4167694,"name":"Panama City","country":"US","coord":{"lon":-85.659828,"lat":30.15946}}
+{"_id":4176380,"name":"Venice","country":"US","coord":{"lon":-82.454262,"lat":27.099779}}
+{"_id":4181936,"name":"Belvedere Park","country":"US","coord":{"lon":-84.267418,"lat":33.754829}}
+{"_id":4185657,"name":"Calhoun","country":"US","coord":{"lon":-84.95105,"lat":34.50259}}
+{"_id":4193699,"name":"Evans","country":"US","coord":{"lon":-82.130669,"lat":33.533749}}
+{"_id":4235668,"name":"Charleston","country":"US","coord":{"lon":-88.176147,"lat":39.496151}}
+{"_id":4241704,"name":"Jacksonville","country":"US","coord":{"lon":-90.229012,"lat":39.73394}}
+{"_id":4244099,"name":"Mattoon","country":"US","coord":{"lon":-88.372833,"lat":39.483089}}
+{"_id":4265737,"name":"Terre Haute","country":"US","coord":{"lon":-87.41391,"lat":39.466702}}
+{"_id":4292686,"name":"Georgetown","country":"US","coord":{"lon":-84.55883,"lat":38.209801}}
+{"_id":4294494,"name":"Henderson","country":"US","coord":{"lon":-87.590012,"lat":37.836151}}
+{"_id":4302035,"name":"Murray","country":"US","coord":{"lon":-88.314758,"lat":36.610329}}
+{"_id":4303436,"name":"Owensboro","country":"US","coord":{"lon":-87.113327,"lat":37.77422}}
+{"_id":4305504,"name":"Radcliff","country":"US","coord":{"lon":-85.949127,"lat":37.840351}}
+{"_id":4305974,"name":"Richmond","country":"US","coord":{"lon":-84.294647,"lat":37.74786}}
+{"_id":4313697,"name":"Winchester","country":"US","coord":{"lon":-84.179649,"lat":37.990082}}
+{"_id":4317639,"name":"Bossier City","country":"US","coord":{"lon":-93.732117,"lat":32.515991}}
+{"_id":4333669,"name":"Monroe","country":"US","coord":{"lon":-92.119301,"lat":32.509312}}
+{"_id":4338012,"name":"Prairieville","country":"US","coord":{"lon":-90.972054,"lat":30.302971}}
+{"_id":4356783,"name":"Green Haven","country":"US","coord":{"lon":-76.547737,"lat":39.139549}}
+{"_id":4368711,"name":"Salisbury","country":"US","coord":{"lon":-75.599373,"lat":38.360668}}
+{"_id":4386289,"name":"Farmington","country":"US","coord":{"lon":-90.421791,"lat":37.78088}}
+{"_id":4406282,"name":"Rolla","country":"US","coord":{"lon":-91.771271,"lat":37.951431}}
+{"_id":4407010,"name":"Saint Joseph","country":"US","coord":{"lon":-94.846626,"lat":39.768608}}
+{"_id":4413595,"name":"Warrensburg","country":"US","coord":{"lon":-93.736053,"lat":38.762791}}
+{"_id":4418478,"name":"Biloxi","country":"US","coord":{"lon":-88.885307,"lat":30.39603}}
+{"_id":4419290,"name":"Brandon","country":"US","coord":{"lon":-89.985924,"lat":32.273201}}
+{"_id":4422133,"name":"Clinton","country":"US","coord":{"lon":-90.321762,"lat":32.34153}}
+{"_id":4429295,"name":"Hattiesburg","country":"US","coord":{"lon":-89.290337,"lat":31.32712}}
+{"_id":4434663,"name":"Madison","country":"US","coord":{"lon":-90.115356,"lat":32.461811}}
+{"_id":4440076,"name":"Oxford","country":"US","coord":{"lon":-89.519249,"lat":34.366501}}
+{"_id":4465088,"name":"Elizabeth City","country":"US","coord":{"lon":-76.251053,"lat":36.294601}}
+{"_id":4493316,"name":"Statesville","country":"US","coord":{"lon":-80.887299,"lat":35.782639}}
+{"_id":4525353,"name":"Springfield","country":"US","coord":{"lon":-83.808823,"lat":39.924229}}
+{"_id":4531405,"name":"Broken Arrow","country":"US","coord":{"lon":-95.790817,"lat":36.052601}}
+{"_id":4535783,"name":"El Reno","country":"US","coord":{"lon":-97.955048,"lat":35.532269}}
+{"_id":4543338,"name":"Muskogee","country":"US","coord":{"lon":-95.36969,"lat":35.747879}}
+{"_id":4550659,"name":"Sand Springs","country":"US","coord":{"lon":-96.108887,"lat":36.139809}}
+{"_id":4552707,"name":"Tahlequah","country":"US","coord":{"lon":-94.969963,"lat":35.915371}}
+{"_id":4562144,"name":"West Chester","country":"US","coord":{"lon":-75.605492,"lat":39.960659}}
+{"_id":4593724,"name":"Saint Andrews","country":"US","coord":{"lon":-81.129257,"lat":34.045429}}
+{"_id":4597499,"name":"Saint Andrews","country":"US","coord":{"lon":-81.103149,"lat":34.048759}}
+{"_id":4619800,"name":"Dyersburg","country":"US","coord":{"lon":-89.385628,"lat":36.034519}}
+{"_id":4626334,"name":"Greeneville","country":"US","coord":{"lon":-82.830994,"lat":36.163158}}
+{"_id":4646571,"name":"Oak Ridge","country":"US","coord":{"lon":-84.269638,"lat":36.010361}}
+{"_id":4657077,"name":"Shelbyville","country":"US","coord":{"lon":-86.460274,"lat":35.48341}}
+{"_id":4659446,"name":"Spring Hill","country":"US","coord":{"lon":-86.93,"lat":35.751179}}
+{"_id":4663494,"name":"Tullahoma","country":"US","coord":{"lon":-86.209427,"lat":35.362019}}
+{"_id":4670074,"name":"Alamo","country":"US","coord":{"lon":-98.123062,"lat":26.183689}}
+{"_id":4673425,"name":"Belton","country":"US","coord":{"lon":-97.464447,"lat":31.056009}}
+{"_id":4686593,"name":"Donna","country":"US","coord":{"lon":-98.051949,"lat":26.170349}}
+{"_id":4688275,"name":"Edinburg","country":"US","coord":{"lon":-98.163338,"lat":26.301741}}
+{"_id":4693150,"name":"Gatesville","country":"US","coord":{"lon":-97.743912,"lat":31.43516}}
+{"_id":4703223,"name":"Killeen","country":"US","coord":{"lon":-97.727798,"lat":31.117121}}
+{"_id":4704628,"name":"Lake Jackson","country":"US","coord":{"lon":-95.434387,"lat":29.033859}}
+{"_id":4705349,"name":"Laredo","country":"US","coord":{"lon":-99.507538,"lat":27.506411}}
+{"_id":4708308,"name":"Lufkin","country":"US","coord":{"lon":-94.729103,"lat":31.33824}}
+{"_id":4716805,"name":"Orange","country":"US","coord":{"lon":-93.736549,"lat":30.092991}}
+{"_id":4726440,"name":"San Juan","country":"US","coord":{"lon":-98.155289,"lat":26.18924}}
+{"_id":4728328,"name":"Sherman","country":"US","coord":{"lon":-96.608879,"lat":33.635658}}
+{"_id":4829791,"name":"Albertville","country":"US","coord":{"lon":-86.20887,"lat":34.26759}}
+{"_id":4830198,"name":"Anniston","country":"US","coord":{"lon":-85.831627,"lat":33.659828}}
+{"_id":4846960,"name":"Ankeny","country":"US","coord":{"lon":-93.605766,"lat":41.72971}}
+{"_id":4852065,"name":"Clive","country":"US","coord":{"lon":-93.724113,"lat":41.603039}}
+{"_id":4866445,"name":"Mason City","country":"US","coord":{"lon":-93.201042,"lat":43.153568}}
+{"_id":4868907,"name":"Newton","country":"US","coord":{"lon":-93.047981,"lat":41.699711}}
+{"_id":4870380,"name":"Ottumwa","country":"US","coord":{"lon":-92.411301,"lat":41.020012}}
+{"_id":4880889,"name":"Waterloo","country":"US","coord":{"lon":-92.342957,"lat":42.49276}}
+{"_id":4881346,"name":"West Des Moines","country":"US","coord":{"lon":-93.745308,"lat":41.571991}}
+{"_id":4888015,"name":"Cicero","country":"US","coord":{"lon":-87.753937,"lat":41.845589}}
+{"_id":4889426,"name":"Danville","country":"US","coord":{"lon":-87.63002,"lat":40.124481}}
+{"_id":4931429,"name":"Brockton","country":"US","coord":{"lon":-71.018379,"lat":42.083431}}
+{"_id":4991735,"name":"Eastpointe","country":"US","coord":{"lon":-82.955467,"lat":42.468369}}
+{"_id":4995514,"name":"Haslett","country":"US","coord":{"lon":-84.401077,"lat":42.746979}}
+{"_id":5001929,"name":"Midland","country":"US","coord":{"lon":-84.247208,"lat":43.615582}}
+{"_id":5004359,"name":"Okemos","country":"US","coord":{"lon":-84.427467,"lat":42.72226}}
+{"_id":5036420,"name":"Mankato","country":"US","coord":{"lon":-93.999397,"lat":44.163582}}
+{"_id":5040647,"name":"Owatonna","country":"US","coord":{"lon":-93.226044,"lat":44.083851}}
+{"_id":5046001,"name":"Sartell","country":"US","coord":{"lon":-94.20694,"lat":45.621632}}
+{"_id":5053156,"name":"Winona","country":"US","coord":{"lon":-91.63932,"lat":44.049961}}
+{"_id":5107505,"name":"Auburn","country":"US","coord":{"lon":-76.566048,"lat":42.931728}}
+{"_id":5112078,"name":"Central Islip","country":"US","coord":{"lon":-73.201782,"lat":40.790649}}
+{"_id":5116303,"name":"Eggertsville","country":"US","coord":{"lon":-78.803917,"lat":42.96339}}
+{"_id":5118743,"name":"Gloversville","country":"US","coord":{"lon":-74.34375,"lat":43.052849}}
+{"_id":5122432,"name":"Ithaca","country":"US","coord":{"lon":-76.496613,"lat":42.440632}}
+{"_id":5131692,"name":"Plattsburgh","country":"US","coord":{"lon":-73.452911,"lat":44.69949}}
+{"_id":5142056,"name":"Utica","country":"US","coord":{"lon":-75.232658,"lat":43.100899}}
+{"_id":5146256,"name":"Austintown","country":"US","coord":{"lon":-80.764519,"lat":41.101719}}
+{"_id":5155207,"name":"Fremont","country":"US","coord":{"lon":-83.121857,"lat":41.35033}}
+{"_id":5195561,"name":"Johnstown","country":"US","coord":{"lon":-78.921967,"lat":40.32674}}
+{"_id":5216895,"name":"Upper Saint Clair","country":"US","coord":{"lon":-80.083389,"lat":40.335899}}
+{"_id":5231851,"name":"Sioux Falls","country":"US","coord":{"lon":-96.700333,"lat":43.549969}}
+{"_id":5245193,"name":"Beaver Dam","country":"US","coord":{"lon":-88.837334,"lat":43.457771}}
+{"_id":5257754,"name":"Janesville","country":"US","coord":{"lon":-89.018723,"lat":42.682789}}
+{"_id":5265838,"name":"Oshkosh","country":"US","coord":{"lon":-88.54261,"lat":44.024712}}
+{"_id":5274644,"name":"Stevens Point","country":"US","coord":{"lon":-89.574562,"lat":44.523579}}
+{"_id":5278120,"name":"Wausau","country":"US","coord":{"lon":-89.630119,"lat":44.959141}}
+{"_id":5280822,"name":"Weirton Heights","country":"US","coord":{"lon":-80.539238,"lat":40.408401}}
+{"_id":5287262,"name":"Buckeye","country":"US","coord":{"lon":-112.583778,"lat":33.370319}}
+{"_id":5309858,"name":"Prescott Valley","country":"US","coord":{"lon":-112.325249,"lat":34.589409}}
+{"_id":5325111,"name":"Atascadero","country":"US","coord":{"lon":-120.670731,"lat":35.489422}}
+{"_id":5336269,"name":"Chico","country":"US","coord":{"lon":-121.837479,"lat":39.728489}}
+{"_id":5338122,"name":"Clovis","country":"US","coord":{"lon":-119.702919,"lat":36.82523}}
+{"_id":5339539,"name":"Corcoran","country":"US","coord":{"lon":-119.560402,"lat":36.098011}}
+{"_id":5343171,"name":"Dinuba","country":"US","coord":{"lon":-119.38707,"lat":36.543282}}
+{"_id":5359864,"name":"Isla Vista","country":"US","coord":{"lon":-119.86097,"lat":34.41333}}
+{"_id":5369367,"name":"Lynwood","country":"US","coord":{"lon":-118.211456,"lat":33.93029}}
+{"_id":5377100,"name":"Nipomo","country":"US","coord":{"lon":-120.475998,"lat":35.042751}}
+{"_id":5378500,"name":"Oakdale","country":"US","coord":{"lon":-120.847153,"lat":37.76659}}
+{"_id":5380626,"name":"Palm Desert","country":"US","coord":{"lon":-116.374458,"lat":33.72224}}
+{"_id":5381515,"name":"Patterson","country":"US","coord":{"lon":-121.129662,"lat":37.4716}}
+{"_id":5386984,"name":"Reedley","country":"US","coord":{"lon":-119.450401,"lat":36.59634}}
+{"_id":5392090,"name":"San Jacinto","country":"US","coord":{"lon":-116.958641,"lat":33.783909}}
+{"_id":5392528,"name":"San Pedro","country":"US","coord":{"lon":-118.29229,"lat":33.735851}}
+{"_id":5394136,"name":"Seaside","country":"US","coord":{"lon":-121.851624,"lat":36.611069}}
+{"_id":5404024,"name":"Turlock","country":"US","coord":{"lon":-120.846588,"lat":37.494659}}
+{"_id":5406222,"name":"Victorville","country":"US","coord":{"lon":-117.291161,"lat":34.53611}}
+{"_id":5406567,"name":"Visalia","country":"US","coord":{"lon":-119.292061,"lat":36.330231}}
+{"_id":5416005,"name":"Canon City","country":"US","coord":{"lon":-105.242447,"lat":38.440979}}
+{"_id":5454627,"name":"Alamogordo","country":"US","coord":{"lon":-105.960258,"lat":32.899529}}
+{"_id":5475352,"name":"Las Cruces","country":"US","coord":{"lon":-106.778343,"lat":32.312321}}
+{"_id":5488441,"name":"Roswell","country":"US","coord":{"lon":-104.523018,"lat":33.394272}}
+{"_id":5504003,"name":"Fernley","country":"US","coord":{"lon":-119.251831,"lat":39.607971}}
+{"_id":5509403,"name":"North Las Vegas","country":"US","coord":{"lon":-115.1175,"lat":36.19886}}
+{"_id":5516233,"name":"Amarillo","country":"US","coord":{"lon":-101.831299,"lat":35.222}}
+{"_id":5527554,"name":"Odessa","country":"US","coord":{"lon":-102.367638,"lat":31.84568}}
+{"_id":5530022,"name":"San Angelo","country":"US","coord":{"lon":-100.437042,"lat":31.46377}}
+{"_id":5601538,"name":"Moscow","country":"US","coord":{"lon":-117.000168,"lat":46.732391}}
+{"_id":5660340,"name":"Kalispell","country":"US","coord":{"lon":-114.312912,"lat":48.195789}}
+{"_id":5754005,"name":"Springfield","country":"US","coord":{"lon":-123.022034,"lat":44.046242}}
+{"_id":5781070,"name":"Sandy Hills","country":"US","coord":{"lon":-111.850769,"lat":40.581059}}
+{"_id":5808276,"name":"Richland","country":"US","coord":{"lon":-119.284462,"lat":46.28569}}
+{"_id":5810490,"name":"Silverdale","country":"US","coord":{"lon":-122.69487,"lat":47.644539}}
+{"_id":5852275,"name":"Pearl City","country":"US","coord":{"lon":-157.973328,"lat":21.397221}}
+{"_id":5854686,"name":"Waipahu","country":"US","coord":{"lon":-158.009171,"lat":21.386669}}
+{"_id":5855070,"name":"Ewa Gentry","country":"US","coord":{"lon":-158.030823,"lat":21.34417}}
+{"_id":5855927,"name":"Hilo","country":"US","coord":{"lon":-155.089996,"lat":19.729719}}
+{"_id":6332439,"name":"Alafaya","country":"US","coord":{"lon":-81.211403,"lat":28.5641}}
+{"_id":6941080,"name":"Fort Bragg","country":"US","coord":{"lon":-79.006027,"lat":35.139}}
+{"_id":7262761,"name":"Makakilo","country":"US","coord":{"lon":-158.086548,"lat":21.352369}}
+{"_id":6252001,"name":"United States","country":"US","coord":{"lon":-98.5,"lat":39.759998}}
+{"_id":4155751,"name":"Florida","country":"US","coord":{"lon":-82.500099,"lat":28.75054}}
+{"_id":4164238,"name":"Miami-Dade County","country":"US","coord":{"lon":-80.533112,"lat":25.61705}}
+{"_id":4068296,"name":"Houston County","country":"US","coord":{"lon":-85.316597,"lat":31.150181}}
+{"_id":5290270,"name":"Cochise County","country":"US","coord":{"lon":-109.742287,"lat":31.93203}}
+{"_id":4683477,"name":"Coryell County","country":"US","coord":{"lon":-97.800301,"lat":31.383499}}
+{"_id":4718267,"name":"Pecan Wells","country":"US","coord":{"lon":-98.371429,"lat":31.57655}}
+{"_id":5297410,"name":"Harrington Place","country":"US","coord":{"lon":-110.546738,"lat":32.04258}}
+{"_id":5236279,"name":"Franklin County","country":"US","coord":{"lon":-72.866249,"lat":44.850052}}
+{"_id":5235775,"name":"East Richford","country":"US","coord":{"lon":-72.58596,"lat":45.011162}}
+{"_id":5302611,"name":"Lone Butte Ranch","country":"US","coord":{"lon":-112.047089,"lat":33.232552}}
+{"_id":4108996,"name":"Drew County","country":"US","coord":{"lon":-91.716797,"lat":33.600109}}
+{"_id":4116526,"name":"Jerome","country":"US","coord":{"lon":-91.470123,"lat":33.399559}}
+{"_id":4217625,"name":"Putnam County","country":"US","coord":{"lon":-83.349876,"lat":33.333469}}
+{"_id":4186974,"name":"Centennial","country":"US","coord":{"lon":-83.612389,"lat":33.58596}}
+{"_id":5295579,"name":"Gallups","country":"US","coord":{"lon":-111.186523,"lat":34.078651}}
+{"_id":4586272,"name":"Marion County","country":"US","coord":{"lon":-79.433113,"lat":34.083488}}
+{"_id":4571677,"name":"Blue Brick","country":"US","coord":{"lon":-79.51783,"lat":34.223492}}
+{"_id":5309479,"name":"Poland Junction","country":"US","coord":{"lon":-112.269333,"lat":34.450859}}
+{"_id":5305210,"name":"Mohave Crossing","country":"US","coord":{"lon":-114.58886,"lat":35.333328}}
+{"_id":4247387,"name":"Pope County","country":"US","coord":{"lon":-88.566711,"lat":37.416721}}
+{"_id":5326526,"name":"Baumberg","country":"US","coord":{"lon":-122.100243,"lat":37.62077}}
+{"_id":5370594,"name":"Mariposa County","country":"US","coord":{"lon":-119.901009,"lat":37.549938}}
+{"_id":4293895,"name":"Hamim","country":"US","coord":{"lon":-83.313789,"lat":38.127579}}
+{"_id":5396987,"name":"Solano County","country":"US","coord":{"lon":-121.951073,"lat":38.23325}}
+{"_id":4412833,"name":"Valley View","country":"US","coord":{"lon":-93.428261,"lat":38.206139}}
+{"_id":5445900,"name":"Lydia","country":"US","coord":{"lon":-101.29155,"lat":38.278351}}
+{"_id":5416621,"name":"Chaffee County","country":"US","coord":{"lon":-106.183907,"lat":38.766659}}
+{"_id":4144895,"name":"Sussex County","country":"US","coord":{"lon":-75.416313,"lat":38.700111}}
+{"_id":4143340,"name":"Lazy Lagoon Mobile Home Park","country":"US","coord":{"lon":-75.233521,"lat":38.502609}}
+{"_id":4362716,"name":"Montgomery County","country":"US","coord":{"lon":-77.199699,"lat":39.150108}}
+{"_id":4367538,"name":"Rushville","country":"US","coord":{"lon":-77.327477,"lat":39.070389}}
+{"_id":5445489,"name":"Gove County","country":"US","coord":{"lon":-100.483749,"lat":38.916679}}
+{"_id":4503355,"name":"Ocean County","country":"US","coord":{"lon":-74.216248,"lat":39.90012}}
+{"_id":5577467,"name":"Gooding","country":"US","coord":{"lon":-105.083038,"lat":40.073601}}
+{"_id":4900338,"name":"Logan County","country":"US","coord":{"lon":-89.36676,"lat":40.133381}}
+{"_id":4883999,"name":"Bakerville","country":"US","coord":{"lon":-89.196762,"lat":40.063099}}
+{"_id":5074895,"name":"Pawnee County","country":"US","coord":{"lon":-96.23362,"lat":40.133331}}
+{"_id":5160584,"name":"Lena","country":"US","coord":{"lon":-84.032158,"lat":40.140888}}
+{"_id":5578251,"name":"Hygiene","country":"US","coord":{"lon":-105.180817,"lat":40.188599}}
+{"_id":5698142,"name":"Ough","country":"US","coord":{"lon":-101.512672,"lat":40.32222}}
+{"_id":5577529,"name":"Grand County","country":"US","coord":{"lon":-106.083908,"lat":40.06665}}
+{"_id":5578775,"name":"Kremmling","country":"US","coord":{"lon":-106.388924,"lat":40.058868}}
+{"_id":4865617,"name":"Lucas County","country":"US","coord":{"lon":-93.300209,"lat":41.033329}}
+{"_id":4873807,"name":"Russell","country":"US","coord":{"lon":-93.19854,"lat":40.981949}}
+{"_id":4860360,"name":"Henderson","country":"US","coord":{"lon":-95.431107,"lat":41.140549}}
+{"_id":5696719,"name":"Kimball County","country":"US","coord":{"lon":-103.717163,"lat":41.199982}}
+{"_id":4846344,"name":"Adair County","country":"US","coord":{"lon":-94.466911,"lat":41.333321}}
+{"_id":4850326,"name":"Canby","country":"US","coord":{"lon":-94.566643,"lat":41.41721}}
+{"_id":4865894,"name":"Mahaska County","country":"US","coord":{"lon":-92.650192,"lat":41.33334}}
+{"_id":4861716,"name":"Indianapolis","country":"US","coord":{"lon":-92.433517,"lat":41.39695}}
+{"_id":4926796,"name":"Steuben County","country":"US","coord":{"lon":-84.999413,"lat":41.634769}}
+{"_id":5112915,"name":"Cleaver","country":"US","coord":{"lon":-75.235451,"lat":42.180641}}
+{"_id":5143730,"name":"West Cameron","country":"US","coord":{"lon":-77.419434,"lat":42.223961}}
+{"_id":4930396,"name":"Berkshire County","country":"US","coord":{"lon":-73.24955,"lat":42.33342}}
+{"_id":5721936,"name":"Curry County","country":"US","coord":{"lon":-124.217873,"lat":42.500111}}
+{"_id":5712115,"name":"Bagnell Ferry","country":"US","coord":{"lon":-124.367882,"lat":42.466499}}
+{"_id":5112398,"name":"Chenango County","country":"US","coord":{"lon":-75.582962,"lat":42.46674}}
+{"_id":4991746,"name":"Eaton County","country":"US","coord":{"lon":-84.849991,"lat":42.60004}}
+{"_id":5003790,"name":"North Lakeport","country":"US","coord":{"lon":-82.496872,"lat":43.137249}}
+{"_id":4865519,"name":"Lourdes","country":"US","coord":{"lon":-92.298782,"lat":43.262192}}
+{"_id":5083273,"name":"Belknap County","country":"US","coord":{"lon":-71.432854,"lat":43.516739}}
+{"_id":5083288,"name":"Belmont","country":"US","coord":{"lon":-71.477852,"lat":43.445358}}
+{"_id":5086767,"name":"Grafton County","country":"US","coord":{"lon":-71.79953,"lat":43.950069}}
+{"_id":5250808,"name":"Dorns Faro Springs Beach","country":"US","coord":{"lon":-88.319267,"lat":44.12249}}
+{"_id":5084973,"name":"Coos County","country":"US","coord":{"lon":-71.316193,"lat":44.633389}}
+{"_id":5713677,"name":"Benton County","country":"US","coord":{"lon":-123.417877,"lat":44.499569}}
+{"_id":5710600,"name":"Adair Village","country":"US","coord":{"lon":-123.21788,"lat":44.670681}}
+{"_id":5027095,"name":"Forest City","country":"US","coord":{"lon":-94.466377,"lat":45.206348}}
+{"_id":5758120,"name":"Union County","country":"US","coord":{"lon":-118.001328,"lat":45.36652}}
+{"_id":5722618,"name":"Deep Creek (historical)","country":"US","coord":{"lon":-122.397034,"lat":45.38623}}
+{"_id":5033738,"name":"Lake County","country":"US","coord":{"lon":-91.416817,"lat":47.63324}}
+{"_id":5020568,"name":"Castle Danger","country":"US","coord":{"lon":-91.503227,"lat":47.120762}}
+{"_id":5804715,"name":"Newton","country":"US","coord":{"lon":-124.05545,"lat":47.0812}}
+{"_id":5789897,"name":"Chester","country":"US","coord":{"lon":-117.250481,"lat":47.61795}}
+{"_id":5787312,"name":"Bingville","country":"US","coord":{"lon":-117.629959,"lat":48.384899}}
+{"_id":5650243,"name":"East Glacier Park","country":"US","coord":{"lon":-113.218147,"lat":48.44136}}
+{"_id":5554074,"name":"Juneau City and Borough","country":"US","coord":{"lon":-134.333328,"lat":58.416672}}
+{"_id":5558405,"name":"West Juneau","country":"US","coord":{"lon":-134.429443,"lat":58.294998}}
+{"_id":5557906,"name":"Thane","country":"US","coord":{"lon":-134.330276,"lat":58.264172}}
+{"_id":5871330,"name":"Paxson","country":"US","coord":{"lon":-145.613068,"lat":63.089722}}
+{"_id":4710414,"name":"Meadowlakes","country":"US","coord":{"lon":-98.29641,"lat":30.56241}}
+{"_id":5126521,"name":"Medina","country":"US","coord":{"lon":-78.386971,"lat":43.220058}}
+{"_id":5802694,"name":"Mazama","country":"US","coord":{"lon":-120.403976,"lat":48.592091}}
+{"_id":5401254,"name":"Teagueville (historical)","country":"US","coord":{"lon":-119.082047,"lat":34.408329}}
+{"_id":5503507,"name":"Eastland Heights","country":"US","coord":{"lon":-115.188057,"lat":36.192188}}
+{"_id":4551201,"name":"Shea","country":"US","coord":{"lon":-97.780891,"lat":36.384201}}
+{"_id":4106689,"name":"Corning","country":"US","coord":{"lon":-90.579826,"lat":36.407841}}
+{"_id":4111673,"name":"Freeman (historical)","country":"US","coord":{"lon":-94.146873,"lat":36.290352}}
+{"_id":5508138,"name":"Mellan","country":"US","coord":{"lon":-116.59478,"lat":37.71244}}
+{"_id":4383513,"name":"De Soto","country":"US","coord":{"lon":-90.55513,"lat":38.1395}}
+{"_id":4927589,"name":"Vermont","country":"US","coord":{"lon":-86.031929,"lat":40.49921}}
+{"_id":4904407,"name":"Oak Ridge","country":"US","coord":{"lon":-89.437592,"lat":40.811432}}
+{"_id":6331966,"name":"Wood Oaks Glen","country":"US","coord":{"lon":-87.884171,"lat":42.125561}}
+{"_id":5767918,"name":"Pierre","country":"US","coord":{"lon":-100.350967,"lat":44.36832}}
+{"_id":5091605,"name":"Randolph Hill","country":"US","coord":{"lon":-71.278412,"lat":44.388119}}
+{"_id":5237445,"name":"Jay","country":"US","coord":{"lon":-72.43705,"lat":44.947552}}
+{"_id":5261245,"name":"Luck","country":"US","coord":{"lon":-92.482697,"lat":45.576069}}
+{"_id":5643367,"name":"Cameron Park","country":"US","coord":{"lon":-108.581802,"lat":45.799671}}
+{"_id":4221942,"name":"Seminole County","country":"US","coord":{"lon":-84.866592,"lat":30.933519}}
+{"_id":4390078,"name":"Helm","country":"US","coord":{"lon":-92.154343,"lat":37.984211}}
+{"_id":4569073,"name":"Aiken County","country":"US","coord":{"lon":-81.599831,"lat":33.583481}}
+{"_id":4588936,"name":"New Ellenton","country":"US","coord":{"lon":-81.685669,"lat":33.421532}}
+{"_id":5141045,"name":"Tioga County","country":"US","coord":{"lon":-76.266319,"lat":42.16674}}
+{"_id":5114271,"name":"Crum Town","country":"US","coord":{"lon":-76.444656,"lat":42.255348}}
+{"_id":5087463,"name":"Hillsborough County","country":"US","coord":{"lon":-71.716187,"lat":42.933418}}
+{"_id":4156770,"name":"Gilchrist County","country":"US","coord":{"lon":-82.791512,"lat":29.70857}}
+{"_id":4175046,"name":"Thames","country":"US","coord":{"lon":-82.692062,"lat":29.680519}}
+{"_id":4483897,"name":"Pamlico County","country":"US","coord":{"lon":-76.749649,"lat":35.133499}}
+{"_id":4452848,"name":"Arapahoe","country":"US","coord":{"lon":-76.825493,"lat":35.025719}}
+{"_id":4181182,"name":"Barrow County","country":"US","coord":{"lon":-83.71656,"lat":33.98344}}
+{"_id":5856194,"name":"Honolulu County","country":"US","coord":{"lon":-157.966675,"lat":21.466669}}
+{"_id":5850943,"name":"Maunalani Heights","country":"US","coord":{"lon":-157.792496,"lat":21.296671}}
+{"_id":5528673,"name":"Presidio County","country":"US","coord":{"lon":-104.25103,"lat":29.91684}}
+{"_id":4257565,"name":"Floyd County","country":"US","coord":{"lon":-85.873581,"lat":38.324509}}
+{"_id":4921085,"name":"Hamilton County","country":"US","coord":{"lon":-86.008598,"lat":40.045589}}
+{"_id":4982040,"name":"Waldo County","country":"US","coord":{"lon":-69.09948,"lat":44.46674}}
+{"_id":4726259,"name":"San Augustine County","country":"US","coord":{"lon":-94.166862,"lat":31.400181}}
+{"_id":4737254,"name":"Townsend","country":"US","coord":{"lon":-94.311867,"lat":31.351021}}
+{"_id":4336206,"name":"Osceola","country":"US","coord":{"lon":-90.311478,"lat":30.65074}}
+{"_id":5411363,"name":"Adams County","country":"US","coord":{"lon":-104.38385,"lat":39.86665}}
+{"_id":5440516,"name":"Strasburg","country":"US","coord":{"lon":-104.323288,"lat":39.738319}}
+{"_id":5307464,"name":"Oracle Junction","country":"US","coord":{"lon":-110.933441,"lat":32.555069}}
+{"_id":4851902,"name":"Clayton County","country":"US","coord":{"lon":-91.366798,"lat":42.833321}}
+{"_id":4844275,"name":"Tolland County","country":"US","coord":{"lon":-72.349533,"lat":41.850101}}
+{"_id":4845897,"name":"Windermere","country":"US","coord":{"lon":-72.484253,"lat":41.87788}}
+{"_id":5017916,"name":"Benton County","country":"US","coord":{"lon":-93.983589,"lat":45.69997}}
+{"_id":5861918,"name":"Faith Creek (historical)","country":"US","coord":{"lon":-146.379166,"lat":65.288887}}
+{"_id":4076795,"name":"Montgomery County","country":"US","coord":{"lon":-86.233299,"lat":32.233479}}
+{"_id":4922460,"name":"LaPorte County","country":"US","coord":{"lon":-86.722519,"lat":41.6106}}
+{"_id":4464909,"name":"Edgecombe County","country":"US","coord":{"lon":-77.583031,"lat":35.900162}}
+{"_id":4107079,"name":"Crittenden County","country":"US","coord":{"lon":-90.283432,"lat":35.233421}}
+{"_id":4683195,"name":"Copeland","country":"US","coord":{"lon":-95.271889,"lat":32.23988}}
+{"_id":5553366,"name":"Beyerville","country":"US","coord":{"lon":-110.878418,"lat":31.390381}}
+{"_id":5064837,"name":"Buffalo County","country":"US","coord":{"lon":-99.083702,"lat":40.85001}}
+{"_id":5400963,"name":"Tajiguas","country":"US","coord":{"lon":-120.108482,"lat":34.46666}}
+{"_id":4582287,"name":"Horry County","country":"US","coord":{"lon":-78.983093,"lat":33.91684}}
+{"_id":4333789,"name":"Morehouse Parish","country":"US","coord":{"lon":-91.800133,"lat":32.800129}}
+{"_id":4724363,"name":"Rusk County","country":"US","coord":{"lon":-94.783546,"lat":32.116829}}
+{"_id":5345768,"name":"El Nido Mobile Home Estates","country":"US","coord":{"lon":-117.646988,"lat":33.511139}}
+{"_id":5136325,"name":"Saratoga County","country":"US","coord":{"lon":-73.849571,"lat":43.100071}}
+{"_id":4499428,"name":"Wilson County","country":"US","coord":{"lon":-77.916367,"lat":35.71682}}
+{"_id":5330943,"name":"Brookfield Village","country":"US","coord":{"lon":-122.186081,"lat":37.73521}}
+{"_id":4576323,"name":"Darlington County","country":"US","coord":{"lon":-79.966454,"lat":34.333488}}
+{"_id":5405603,"name":"Valley Vista","country":"US","coord":{"lon":-117.073082,"lat":33.741409}}
+{"_id":4705086,"name":"Lamar County","country":"US","coord":{"lon":-95.583572,"lat":33.666771}}
+{"_id":5003243,"name":"Nashville","country":"US","coord":{"lon":-85.093048,"lat":42.60281}}
+{"_id":4982593,"name":"West Falmouth (historical)","country":"US","coord":{"lon":-70.295052,"lat":43.740082}}
+{"_id":5248812,"name":"Clark County","country":"US","coord":{"lon":-90.633476,"lat":44.733299}}
+{"_id":4486072,"name":"Polk County","country":"US","coord":{"lon":-82.166496,"lat":35.283451}}
+{"_id":5323631,"name":"Alviso","country":"US","coord":{"lon":-121.975243,"lat":37.426048}}
+{"_id":5172936,"name":"Stark County","country":"US","coord":{"lon":-81.366501,"lat":40.816719}}
+{"_id":5739051,"name":"Marion County","country":"US","coord":{"lon":-122.651199,"lat":44.866508}}
+{"_id":4927846,"name":"Warren County","country":"US","coord":{"lon":-87.2939,"lat":40.288368}}
+{"_id":5382489,"name":"Pico","country":"US","coord":{"lon":-118.61203,"lat":34.377499}}
+{"_id":5115728,"name":"East Bethany","country":"US","coord":{"lon":-78.101402,"lat":42.93145}}
+{"_id":4120256,"name":"Macon","country":"US","coord":{"lon":-92.16848,"lat":34.920368}}
+{"_id":5258190,"name":"Juneau","country":"US","coord":{"lon":-88.705101,"lat":43.405548}}
+{"_id":5267180,"name":"Pinehurst","country":"US","coord":{"lon":-91.462662,"lat":44.858292}}
+{"_id":5789872,"name":"Cherokee","country":"US","coord":{"lon":-119.466438,"lat":48.45071}}
+{"_id":7261228,"name":"Marietta-Alderwood","country":"US","coord":{"lon":-122.553688,"lat":48.78965}}
+{"_id":4712319,"name":"Morgans Point Resort","country":"US","coord":{"lon":-97.463341,"lat":31.14823}}
+{"_id":4716207,"name":"Olcott","country":"US","coord":{"lon":-95.170769,"lat":29.59495}}
+{"_id":4726971,"name":"Sansom Park","country":"US","coord":{"lon":-97.403069,"lat":32.805962}}
+{"_id":4733497,"name":"Spear","country":"US","coord":{"lon":-96.336906,"lat":30.601589}}
+{"_id":5738839,"name":"Malheur County","country":"US","coord":{"lon":-117.667671,"lat":43.25016}}
+{"_id":5745379,"name":"Pendair Heights","country":"US","coord":{"lon":-118.84388,"lat":45.687351}}
+{"_id":4547701,"name":"Payne County","country":"US","coord":{"lon":-96.96698,"lat":36.066719}}
+{"_id":4551177,"name":"Shawnee","country":"US","coord":{"lon":-96.925301,"lat":35.32729}}
+{"_id":4541040,"name":"Lillard Park","country":"US","coord":{"lon":-97.594208,"lat":35.428669}}
+{"_id":4552546,"name":"Summit","country":"US","coord":{"lon":-95.422752,"lat":35.665932}}
+{"_id":4553073,"name":"Tillman County","country":"US","coord":{"lon":-98.917023,"lat":34.366749}}
+{"_id":4537533,"name":"Gene Autry","country":"US","coord":{"lon":-97.038071,"lat":34.283699}}
+{"_id":5160938,"name":"Linworth","country":"US","coord":{"lon":-83.049072,"lat":40.090061}}
+{"_id":5136456,"name":"Schenectady County","country":"US","coord":{"lon":-74.082901,"lat":42.833408}}
+{"_id":5708001,"name":"Rose Creek","country":"US","coord":{"lon":-117.895126,"lat":40.8899}}
+{"_id":7257859,"name":"Fairfield","country":"US","coord":{"lon":-74.304024,"lat":40.882549}}
+{"_id":5019915,"name":"Cable","country":"US","coord":{"lon":-94.07415,"lat":45.511631}}
+{"_id":5017121,"name":"Bancroft","country":"US","coord":{"lon":-93.355209,"lat":43.701618}}
+{"_id":4947488,"name":"Plainville","country":"US","coord":{"lon":-70.960602,"lat":41.682049}}
+{"_id":4954847,"name":"West Bedford","country":"US","coord":{"lon":-71.315613,"lat":42.478149}}
+{"_id":4860629,"name":"Highview","country":"US","coord":{"lon":-93.904114,"lat":42.47192}}
+{"_id":4161511,"name":"Lakewood Park","country":"US","coord":{"lon":-80.374222,"lat":27.48143}}
+{"_id":5426503,"name":"Jefferson County","country":"US","coord":{"lon":-105.267212,"lat":39.63332}}
+{"_id":5406376,"name":"Village Mobile Home Park","country":"US","coord":{"lon":-120.453217,"lat":34.888309}}
+{"_id":5403106,"name":"Town and Country Mobile Home Park","country":"US","coord":{"lon":-116.974747,"lat":32.83255}}
+{"_id":5394503,"name":"Serra Mesa","country":"US","coord":{"lon":-117.138367,"lat":32.80283}}
+{"_id":5368301,"name":"Lorraine (historical)","country":"US","coord":{"lon":-121.650253,"lat":39.469051}}
+{"_id":5381231,"name":"Parker Junction","country":"US","coord":{"lon":-114.596077,"lat":34.770279}}
+{"_id":5372656,"name":"Michopdo (historical)","country":"US","coord":{"lon":-121.853867,"lat":39.731831}}
+{"_id":7723170,"name":"Desert Royal Mobile Park","country":"US","coord":{"lon":-114.61528,"lat":32.66748}}
+{"_id":4077029,"name":"Morgan County","country":"US","coord":{"lon":-86.849998,"lat":34.450089}}
+{"_id":4059102,"name":"Dothan","country":"US","coord":{"lon":-85.390488,"lat":31.22323}}
+{"_id":4080555,"name":"Northport","country":"US","coord":{"lon":-87.577232,"lat":33.229012}}
+{"_id":4081644,"name":"Opelika","country":"US","coord":{"lon":-85.378281,"lat":32.645409}}
+{"_id":4830868,"name":"Autauga County","country":"US","coord":{"lon":-86.649979,"lat":32.53347}}
+{"_id":4058076,"name":"Dallas County","country":"US","coord":{"lon":-87.083321,"lat":32.333469}}
+{"_id":4094163,"name":"Troy","country":"US","coord":{"lon":-85.969948,"lat":31.808769}}
+{"_id":4102412,"name":"Blytheville","country":"US","coord":{"lon":-89.918983,"lat":35.927299}}
+{"_id":4119825,"name":"Lonoke County","country":"US","coord":{"lon":-91.883469,"lat":34.766762}}
+{"_id":4110465,"name":"Faulkner County","country":"US","coord":{"lon":-92.333488,"lat":35.166752}}
+{"_id":4109785,"name":"El Dorado","country":"US","coord":{"lon":-92.666267,"lat":33.20763}}
+{"_id":4129533,"name":"Saint Francis County","country":"US","coord":{"lon":-90.766777,"lat":35.016762}}
+{"_id":4116834,"name":"Jonesboro","country":"US","coord":{"lon":-90.704277,"lat":35.8423}}
+{"_id":4125388,"name":"Paragould","country":"US","coord":{"lon":-90.49733,"lat":36.058399}}
+{"_id":4126226,"name":"Pine Bluff","country":"US","coord":{"lon":-92.003197,"lat":34.228432}}
+{"_id":4127100,"name":"Pope County","country":"US","coord":{"lon":-93.050171,"lat":35.450081}}
+{"_id":4129397,"name":"Russellville","country":"US","coord":{"lon":-93.133789,"lat":35.278419}}
+{"_id":4130430,"name":"Searcy","country":"US","coord":{"lon":-91.736252,"lat":35.250641}}
+{"_id":4133367,"name":"Texarkana","country":"US","coord":{"lon":-94.037689,"lat":33.441792}}
+{"_id":4107027,"name":"Crawford County","country":"US","coord":{"lon":-94.233543,"lat":35.58342}}
+{"_id":4134716,"name":"Van Buren","country":"US","coord":{"lon":-94.348267,"lat":35.43676}}
+{"_id":4138106,"name":"District of Columbia","country":"US","coord":{"lon":-77.000252,"lat":38.917061}}
+{"_id":4167895,"name":"Pasco County","country":"US","coord":{"lon":-82.416481,"lat":28.29195}}
+{"_id":4147241,"name":"Belle Glade","country":"US","coord":{"lon":-80.667557,"lat":26.684509}}
+{"_id":4167218,"name":"Osceola County","country":"US","coord":{"lon":-81.124229,"lat":28.04196}}
+{"_id":4168618,"name":"Pinellas County","country":"US","coord":{"lon":-82.70816,"lat":27.89613}}
+{"_id":4176559,"name":"Volusia County","country":"US","coord":{"lon":-81.208122,"lat":29.08359}}
+{"_id":4154568,"name":"Estero","country":"US","coord":{"lon":-81.806747,"lat":26.438141}}
+{"_id":4159657,"name":"Indian River County","country":"US","coord":{"lon":-80.583107,"lat":27.687811}}
+{"_id":4155995,"name":"Fort Myers","country":"US","coord":{"lon":-81.840591,"lat":26.621679}}
+{"_id":4156920,"name":"Golden Gate","country":"US","coord":{"lon":-81.695091,"lat":26.18787}}
+{"_id":4159553,"name":"Immokalee","country":"US","coord":{"lon":-81.417297,"lat":26.41869}}
+{"_id":4160812,"name":"Key West","country":"US","coord":{"lon":-81.782593,"lat":24.5557}}
+{"_id":4161771,"name":"Leesburg","country":"US","coord":{"lon":-81.877861,"lat":28.81082}}
+{"_id":4161785,"name":"Lehigh Acres","country":"US","coord":{"lon":-81.624802,"lat":26.625351}}
+{"_id":4165565,"name":"Naples","country":"US","coord":{"lon":-81.794807,"lat":26.14204}}
+{"_id":4165913,"name":"New Smyrna Beach","country":"US","coord":{"lon":-80.927002,"lat":29.02582}}
+{"_id":4167178,"name":"Ormond Beach","country":"US","coord":{"lon":-81.055893,"lat":29.28581}}
+{"_id":4167538,"name":"Palm Coast","country":"US","coord":{"lon":-81.20784,"lat":29.58497}}
+{"_id":4169156,"name":"Port Orange","country":"US","coord":{"lon":-80.995613,"lat":29.138321}}
+{"_id":4171782,"name":"San Carlos Park","country":"US","coord":{"lon":-81.801468,"lat":26.4673}}
+{"_id":4175179,"name":"The Villages","country":"US","coord":{"lon":-81.959938,"lat":28.93408}}
+{"_id":4179667,"name":"Americus","country":"US","coord":{"lon":-84.232689,"lat":32.072392}}
+{"_id":4188191,"name":"Clarke County","country":"US","coord":{"lon":-83.383209,"lat":33.950119}}
+{"_id":4218744,"name":"Richmond County","country":"US","coord":{"lon":-82.099838,"lat":33.36681}}
+{"_id":4180531,"name":"Augusta","country":"US","coord":{"lon":-81.974838,"lat":33.47097}}
+{"_id":4184845,"name":"Brunswick","country":"US","coord":{"lon":-81.491493,"lat":31.14995}}
+{"_id":4197608,"name":"Gordon County","country":"US","coord":{"lon":-84.866608,"lat":34.50037}}
+{"_id":4187535,"name":"Cherokee County","country":"US","coord":{"lon":-84.449928,"lat":34.266762}}
+{"_id":4186396,"name":"Carroll County","country":"US","coord":{"lon":-85.049942,"lat":33.583439}}
+{"_id":4181218,"name":"Bartow County","country":"US","coord":{"lon":-84.849937,"lat":34.25037}}
+{"_id":4211716,"name":"Muscogee County","country":"US","coord":{"lon":-84.8666,"lat":32.500702}}
+{"_id":4219431,"name":"Rockdale County","country":"US","coord":{"lon":-84.016579,"lat":33.650108}}
+{"_id":4191928,"name":"Douglas County","country":"US","coord":{"lon":-84.749939,"lat":33.700111}}
+{"_id":4205152,"name":"Laurens County","country":"US","coord":{"lon":-82.916527,"lat":32.450169}}
+{"_id":4192205,"name":"Dublin","country":"US","coord":{"lon":-82.903748,"lat":32.54044}}
+{"_id":4198645,"name":"Gwinnett County","country":"US","coord":{"lon":-84.049911,"lat":33.9501}}
+{"_id":4188957,"name":"Columbia County","country":"US","coord":{"lon":-82.250397,"lat":33.55014}}
+{"_id":4194465,"name":"Fayette County","country":"US","coord":{"lon":-84.483261,"lat":33.40012}}
+{"_id":4223848,"name":"Spalding County","country":"US","coord":{"lon":-84.283257,"lat":33.266781}}
+{"_id":4200671,"name":"Hinesville","country":"US","coord":{"lon":-81.595947,"lat":31.84688}}
+{"_id":4185838,"name":"Camden County","country":"US","coord":{"lon":-81.666489,"lat":30.95023}}
+{"_id":4204007,"name":"Kingsland","country":"US","coord":{"lon":-81.689827,"lat":30.799959}}
+{"_id":4204230,"name":"La Grange","country":"US","coord":{"lon":-85.031326,"lat":33.039291}}
+{"_id":4207400,"name":"Macon","country":"US","coord":{"lon":-83.632401,"lat":32.840691}}
+{"_id":4180872,"name":"Baldwin County","country":"US","coord":{"lon":-83.149872,"lat":33.066811}}
+{"_id":4209448,"name":"Milledgeville","country":"US","coord":{"lon":-83.232101,"lat":33.080139}}
+{"_id":4189828,"name":"Coweta County","country":"US","coord":{"lon":-84.766602,"lat":33.38345}}
+{"_id":4216948,"name":"Pooler","country":"US","coord":{"lon":-81.247063,"lat":32.115479}}
+{"_id":4219762,"name":"Rome","country":"US","coord":{"lon":-85.164673,"lat":34.257038}}
+{"_id":4220629,"name":"Saint Marys","country":"US","coord":{"lon":-81.546494,"lat":30.730511}}
+{"_id":4224413,"name":"Statesboro","country":"US","coord":{"lon":-81.783173,"lat":32.448792}}
+{"_id":4226286,"name":"Thomas County","country":"US","coord":{"lon":-83.866562,"lat":30.95019}}
+{"_id":4226348,"name":"Thomasville","country":"US","coord":{"lon":-83.978783,"lat":30.83658}}
+{"_id":4226552,"name":"Tifton","country":"US","coord":{"lon":-83.508499,"lat":31.45046}}
+{"_id":4228147,"name":"Valdosta","country":"US","coord":{"lon":-83.278488,"lat":30.832701}}
+{"_id":4231354,"name":"Wilmington Island","country":"US","coord":{"lon":-80.973717,"lat":32.003551}}
+{"_id":4247703,"name":"Quincy","country":"US","coord":{"lon":-91.409866,"lat":39.9356}}
+{"_id":4258778,"name":"Hendricks County","country":"US","coord":{"lon":-86.52639,"lat":39.760601}}
+{"_id":4256038,"name":"Columbus","country":"US","coord":{"lon":-85.921379,"lat":39.201439}}
+{"_id":4258477,"name":"Hancock County","country":"US","coord":{"lon":-85.769417,"lat":39.785042}}
+{"_id":4259640,"name":"Jasper","country":"US","coord":{"lon":-86.931107,"lat":38.391441}}
+{"_id":4258792,"name":"Henry County","country":"US","coord":{"lon":-85.370247,"lat":39.92894}}
+{"_id":4266673,"name":"Wayne County","country":"US","coord":{"lon":-84.996353,"lat":39.817822}}
+{"_id":4264617,"name":"Seymour","country":"US","coord":{"lon":-85.890251,"lat":38.959221}}
+{"_id":4259986,"name":"Knox County","country":"US","coord":{"lon":-87.415573,"lat":38.759491}}
+{"_id":4266307,"name":"Vincennes","country":"US","coord":{"lon":-87.528633,"lat":38.677269}}
+{"_id":4274916,"name":"Lyon County","country":"US","coord":{"lon":-96.150269,"lat":38.450008}}
+{"_id":4271086,"name":"Emporia","country":"US","coord":{"lon":-96.181664,"lat":38.4039}}
+{"_id":4272340,"name":"Great Bend","country":"US","coord":{"lon":-98.764809,"lat":38.36446}}
+{"_id":4272782,"name":"Hays","country":"US","coord":{"lon":-99.326767,"lat":38.879181}}
+{"_id":4273299,"name":"Hutchinson","country":"US","coord":{"lon":-97.929771,"lat":38.060841}}
+{"_id":4272003,"name":"Geary County","country":"US","coord":{"lon":-96.666946,"lat":38.997219}}
+{"_id":4273680,"name":"Junction City","country":"US","coord":{"lon":-96.831398,"lat":39.02861}}
+{"_id":4282035,"name":"Wyandotte County","country":"US","coord":{"lon":-94.716904,"lat":39.116669}}
+{"_id":4274307,"name":"Leavenworth County","country":"US","coord":{"lon":-95.033577,"lat":39.23333}}
+{"_id":4274994,"name":"Manhattan","country":"US","coord":{"lon":-96.571671,"lat":39.183609}}
+{"_id":4277241,"name":"Pittsburg","country":"US","coord":{"lon":-94.704964,"lat":37.410881}}
+{"_id":4278890,"name":"Salina","country":"US","coord":{"lon":-97.61142,"lat":38.840279}}
+{"_id":4282757,"name":"Ashland","country":"US","coord":{"lon":-82.637939,"lat":38.478409}}
+{"_id":4285268,"name":"Bowling Green","country":"US","coord":{"lon":-86.443604,"lat":36.990318}}
+{"_id":4296902,"name":"Kenton County","country":"US","coord":{"lon":-84.533279,"lat":38.950062}}
+{"_id":4289445,"name":"Danville","country":"US","coord":{"lon":-84.772171,"lat":37.64563}}
+{"_id":4290988,"name":"Elizabethtown","country":"US","coord":{"lon":-85.859131,"lat":37.693951}}
+{"_id":4286705,"name":"Campbell County","country":"US","coord":{"lon":-84.38327,"lat":38.950062}}
+{"_id":4292202,"name":"Franklin County","country":"US","coord":{"lon":-84.866623,"lat":38.233398}}
+{"_id":4307808,"name":"Scott County","country":"US","coord":{"lon":-84.566612,"lat":38.300072}}
+{"_id":4294512,"name":"Henderson County","country":"US","coord":{"lon":-87.566681,"lat":37.783379}}
+{"_id":4297999,"name":"Lexington-Fayette","country":"US","coord":{"lon":-84.458549,"lat":38.049801}}
+{"_id":4299670,"name":"Madisonville","country":"US","coord":{"lon":-87.498894,"lat":37.328098}}
+{"_id":4286549,"name":"Calloway County","country":"US","coord":{"lon":-88.266701,"lat":36.633389}}
+{"_id":4296292,"name":"Jessamine County","country":"US","coord":{"lon":-84.566612,"lat":37.866749}}
+{"_id":4315768,"name":"Bayou Cane","country":"US","coord":{"lon":-90.751198,"lat":29.6241}}
+{"_id":4339526,"name":"Saint Bernard Parish","country":"US","coord":{"lon":-89.650063,"lat":29.85021}}
+{"_id":4326868,"name":"Hammond","country":"US","coord":{"lon":-90.461197,"lat":30.50436}}
+{"_id":4328010,"name":"Houma","country":"US","coord":{"lon":-90.719528,"lat":29.59577}}
+{"_id":4339881,"name":"Saint John the Baptist Parish","country":"US","coord":{"lon":-90.550087,"lat":30.0502}}
+{"_id":4334720,"name":"Natchitoches","country":"US","coord":{"lon":-93.086273,"lat":31.760719}}
+{"_id":4328254,"name":"Iberia Parish","country":"US","coord":{"lon":-91.750671,"lat":29.950199}}
+{"_id":4336153,"name":"Opelousas","country":"US","coord":{"lon":-92.081512,"lat":30.533529}}
+{"_id":4315067,"name":"Ascension Parish","country":"US","coord":{"lon":-90.900101,"lat":30.21686}}
+{"_id":4339348,"name":"Ruston","country":"US","coord":{"lon":-92.637932,"lat":32.523209}}
+{"_id":4342816,"name":"Sulphur","country":"US","coord":{"lon":-93.37738,"lat":30.236589}}
+{"_id":4358598,"name":"Howard County","country":"US","coord":{"lon":-76.933029,"lat":39.250381}}
+{"_id":4347094,"name":"Allegany County","country":"US","coord":{"lon":-78.666412,"lat":39.666752}}
+{"_id":4352681,"name":"Cumberland","country":"US","coord":{"lon":-78.76252,"lat":39.65287}}
+{"_id":4353962,"name":"Easton","country":"US","coord":{"lon":-76.076332,"lat":38.774281}}
+{"_id":4373554,"name":"Wicomico County","country":"US","coord":{"lon":-75.599648,"lat":38.366779}}
+{"_id":4380266,"name":"Cass County","country":"US","coord":{"lon":-94.36689,"lat":38.650009}}
+{"_id":4379966,"name":"Cape Girardeau","country":"US","coord":{"lon":-89.51815,"lat":37.305882}}
+{"_id":4377925,"name":"Boone County","country":"US","coord":{"lon":-92.333519,"lat":39.033371}}
+{"_id":4397108,"name":"Marion County","country":"US","coord":{"lon":-91.600159,"lat":39.816711}}
+{"_id":4389418,"name":"Hannibal","country":"US","coord":{"lon":-91.358482,"lat":39.708382}}
+{"_id":4381866,"name":"Cole County","country":"US","coord":{"lon":-92.283524,"lat":38.500309}}
+{"_id":4392768,"name":"Joplin","country":"US","coord":{"lon":-94.513283,"lat":37.084229}}
+{"_id":4381179,"name":"Christian County","country":"US","coord":{"lon":-93.183517,"lat":36.966721}}
+{"_id":4400648,"name":"Nixa","country":"US","coord":{"lon":-93.29435,"lat":37.043388}}
+{"_id":4402245,"name":"Ozark","country":"US","coord":{"lon":-93.206017,"lat":37.020889}}
+{"_id":4379332,"name":"Butler County","country":"US","coord":{"lon":-90.400108,"lat":36.716721}}
+{"_id":4404233,"name":"Poplar Bluff","country":"US","coord":{"lon":-90.392891,"lat":36.757}}
+{"_id":4403116,"name":"Phelps County","country":"US","coord":{"lon":-91.833488,"lat":37.90004}}
+{"_id":4378897,"name":"Buchanan County","country":"US","coord":{"lon":-94.766907,"lat":39.650002}}
+{"_id":4403095,"name":"Pettis County","country":"US","coord":{"lon":-93.300209,"lat":38.733349}}
+{"_id":4408000,"name":"Sedalia","country":"US","coord":{"lon":-93.228256,"lat":38.70446}}
+{"_id":4407901,"name":"Scott County","country":"US","coord":{"lon":-89.56675,"lat":37.066719}}
+{"_id":4408672,"name":"Sikeston","country":"US","coord":{"lon":-89.58786,"lat":36.87672}}
+{"_id":4409896,"name":"Springfield","country":"US","coord":{"lon":-93.298241,"lat":37.215328}}
+{"_id":4421935,"name":"Clarksdale","country":"US","coord":{"lon":-90.57093,"lat":34.200111}}
+{"_id":4422442,"name":"Columbus","country":"US","coord":{"lon":-88.427261,"lat":33.49567}}
+{"_id":4450315,"name":"Washington County","country":"US","coord":{"lon":-91.006767,"lat":33.37067}}
+{"_id":4428475,"name":"Greenville","country":"US","coord":{"lon":-91.061768,"lat":33.410118}}
+{"_id":4433243,"name":"Leflore County","country":"US","coord":{"lon":-90.223137,"lat":33.51984}}
+{"_id":4428495,"name":"Greenwood","country":"US","coord":{"lon":-90.179527,"lat":33.516232}}
+{"_id":4426954,"name":"Forrest County","country":"US","coord":{"lon":-89.294228,"lat":31.314341}}
+{"_id":4423655,"name":"DeSoto County","country":"US","coord":{"lon":-89.990372,"lat":34.92482}}
+{"_id":4433039,"name":"Laurel","country":"US","coord":{"lon":-89.130608,"lat":31.69405}}
+{"_id":4435764,"name":"Meridian","country":"US","coord":{"lon":-88.703659,"lat":32.364311}}
+{"_id":4437982,"name":"Natchez","country":"US","coord":{"lon":-91.403168,"lat":31.56044}}
+{"_id":4439506,"name":"Ocean Springs","country":"US","coord":{"lon":-88.827812,"lat":30.41131}}
+{"_id":4432670,"name":"Lafayette County","country":"US","coord":{"lon":-89.519531,"lat":34.36594}}
+{"_id":4440559,"name":"Pearl","country":"US","coord":{"lon":-90.132027,"lat":32.27459}}
+{"_id":4443296,"name":"Ridgeland","country":"US","coord":{"lon":-90.132309,"lat":32.428478}}
+{"_id":4447161,"name":"Starkville","country":"US","coord":{"lon":-88.81839,"lat":33.450401}}
+{"_id":4449620,"name":"Vicksburg","country":"US","coord":{"lon":-90.877876,"lat":32.35265}}
+{"_id":4450687,"name":"West Gulfport","country":"US","coord":{"lon":-89.0942,"lat":30.404091}}
+{"_id":4497286,"name":"Wake County","country":"US","coord":{"lon":-78.633057,"lat":35.783482}}
+{"_id":4497707,"name":"Watauga County","country":"US","coord":{"lon":-81.699829,"lat":36.233459}}
+{"_id":4452290,"name":"Alamance County","country":"US","coord":{"lon":-79.399742,"lat":36.03347}}
+{"_id":4483525,"name":"Orange County","country":"US","coord":{"lon":-79.116402,"lat":36.066811}}
+{"_id":4466900,"name":"Forsyth County","country":"US","coord":{"lon":-80.233101,"lat":36.133469}}
+{"_id":4464374,"name":"Durham County","country":"US","coord":{"lon":-78.866402,"lat":36.033482}}
+{"_id":4488575,"name":"Rockingham County","country":"US","coord":{"lon":-79.783089,"lat":36.400139}}
+{"_id":4464873,"name":"Eden","country":"US","coord":{"lon":-79.766701,"lat":36.488468}}
+{"_id":4484186,"name":"Pasquotank County","country":"US","coord":{"lon":-76.28299,"lat":36.300159}}
+{"_id":4467717,"name":"Gaston County","country":"US","coord":{"lon":-81.199799,"lat":35.30014}}
+{"_id":4469393,"name":"Guilford County","country":"US","coord":{"lon":-79.799751,"lat":36.066799}}
+{"_id":4469160,"name":"Greenville","country":"US","coord":{"lon":-77.366348,"lat":35.612659}}
+{"_id":4462398,"name":"Craven County","country":"US","coord":{"lon":-77.066338,"lat":35.133492}}
+{"_id":4496539,"name":"Vance County","country":"US","coord":{"lon":-78.399719,"lat":36.36681}}
+{"_id":4496196,"name":"Union County","country":"US","coord":{"lon":-80.549789,"lat":35.000149}}
+{"_id":4490602,"name":"Scotland County","country":"US","coord":{"lon":-79.499771,"lat":34.833488}}
+{"_id":4463056,"name":"Davidson County","country":"US","coord":{"lon":-80.233109,"lat":35.816799}}
+{"_id":4458194,"name":"Burke County","country":"US","coord":{"lon":-81.699821,"lat":35.7668}}
+{"_id":4469619,"name":"Halifax County","country":"US","coord":{"lon":-77.649696,"lat":36.250149}}
+{"_id":4488232,"name":"Roanoke Rapids","country":"US","coord":{"lon":-77.654152,"lat":36.46154}}
+{"_id":4488762,"name":"Rocky Mount","country":"US","coord":{"lon":-77.790527,"lat":35.93821}}
+{"_id":4461030,"name":"Cleveland County","country":"US","coord":{"lon":-81.549812,"lat":35.333462}}
+{"_id":4501427,"name":"Cumberland County","country":"US","coord":{"lon":-75.082962,"lat":39.350109}}
+{"_id":4501019,"name":"Camden County","country":"US","coord":{"lon":-74.966278,"lat":39.783451}}
+{"_id":4501944,"name":"Gloucester County","country":"US","coord":{"lon":-75.13295,"lat":39.733452}}
+{"_id":4505546,"name":"Athens County","country":"US","coord":{"lon":-82.049873,"lat":39.350071}}
+{"_id":4505542,"name":"Athens","country":"US","coord":{"lon":-82.101257,"lat":39.329239}}
+{"_id":4513583,"name":"Hamilton County","country":"US","coord":{"lon":-84.533279,"lat":39.183392}}
+{"_id":4511295,"name":"Fairfield County","country":"US","coord":{"lon":-82.599892,"lat":39.75034}}
+{"_id":4516233,"name":"Lancaster","country":"US","coord":{"lon":-82.599327,"lat":39.71368}}
+{"_id":4524221,"name":"Scioto County","country":"US","coord":{"lon":-82.983231,"lat":38.800079}}
+{"_id":4521816,"name":"Portsmouth","country":"US","coord":{"lon":-82.997673,"lat":38.731739}}
+{"_id":4528923,"name":"Zanesville","country":"US","coord":{"lon":-82.013191,"lat":39.94035}}
+{"_id":4539499,"name":"Jackson County","country":"US","coord":{"lon":-99.383698,"lat":34.616741}}
+{"_id":4529292,"name":"Altus","country":"US","coord":{"lon":-99.333977,"lat":34.63813}}
+{"_id":4529469,"name":"Ardmore","country":"US","coord":{"lon":-97.143631,"lat":34.174259}}
+{"_id":4554708,"name":"Washington County","country":"US","coord":{"lon":-95.900261,"lat":36.716759}}
+{"_id":4529987,"name":"Bartlesville","country":"US","coord":{"lon":-95.98082,"lat":36.747311}}
+{"_id":4530801,"name":"Bixby","country":"US","coord":{"lon":-95.883324,"lat":35.942039}}
+{"_id":4535389,"name":"Duncan","country":"US","coord":{"lon":-97.957809,"lat":34.5023}}
+{"_id":4535414,"name":"Durant","country":"US","coord":{"lon":-96.370819,"lat":33.993992}}
+{"_id":4535961,"name":"Enid","country":"US","coord":{"lon":-97.878387,"lat":36.395592}}
+{"_id":4548102,"name":"Pittsburg County","country":"US","coord":{"lon":-95.766937,"lat":34.9501}}
+{"_id":4542367,"name":"McAlester","country":"US","coord":{"lon":-95.769707,"lat":34.93343}}
+{"_id":4547407,"name":"Owasso","country":"US","coord":{"lon":-95.854713,"lat":36.269539}}
+{"_id":4532932,"name":"Cherokee County","country":"US","coord":{"lon":-94.983566,"lat":35.900089}}
+{"_id":5186677,"name":"Delaware County","country":"US","coord":{"lon":-75.374908,"lat":40.000389}}
+{"_id":4561407,"name":"Springfield","country":"US","coord":{"lon":-75.32019,"lat":39.930672}}
+{"_id":4590954,"name":"Pickens County","country":"US","coord":{"lon":-82.716522,"lat":34.916779}}
+{"_id":4580569,"name":"Greenwood","country":"US","coord":{"lon":-82.161789,"lat":34.1954}}
+{"_id":4570292,"name":"Beaufort County","country":"US","coord":{"lon":-80.699829,"lat":32.366859}}
+{"_id":4581833,"name":"Hilton Head Island","country":"US","coord":{"lon":-80.752609,"lat":32.21632}}
+{"_id":4576822,"name":"Dorchester County","country":"US","coord":{"lon":-80.383148,"lat":33.10017}}
+{"_id":4597948,"name":"Sumter","country":"US","coord":{"lon":-80.341469,"lat":33.920441}}
+{"_id":4660813,"name":"Sullivan County","country":"US","coord":{"lon":-82.533211,"lat":36.516769}}
+{"_id":4608185,"name":"Bradley County","country":"US","coord":{"lon":-84.866608,"lat":35.15007}}
+{"_id":4640041,"name":"Maury County","country":"US","coord":{"lon":-87.066673,"lat":35.6334}}
+{"_id":4614867,"name":"Columbia","country":"US","coord":{"lon":-87.035278,"lat":35.61507}}
+{"_id":4651744,"name":"Putnam County","country":"US","coord":{"lon":-85.649979,"lat":36.166729}}
+{"_id":4615145,"name":"Cookeville","country":"US","coord":{"lon":-85.50164,"lat":36.162842}}
+{"_id":4626324,"name":"Greene County","country":"US","coord":{"lon":-82.849869,"lat":36.150101}}
+{"_id":4665975,"name":"Washington County","country":"US","coord":{"lon":-82.4832,"lat":36.28344}}
+{"_id":4627251,"name":"Hamblen County","country":"US","coord":{"lon":-83.266563,"lat":36.200089}}
+{"_id":4642938,"name":"Morristown","country":"US","coord":{"lon":-83.294891,"lat":36.213982}}
+{"_id":4645421,"name":"New South Memphis","country":"US","coord":{"lon":-90.056763,"lat":35.086761}}
+{"_id":4670234,"name":"Alice","country":"US","coord":{"lon":-98.069717,"lat":27.752251}}
+{"_id":4676137,"name":"Brazoria County","country":"US","coord":{"lon":-95.450218,"lat":29.18358}}
+{"_id":4672989,"name":"Beaumont","country":"US","coord":{"lon":-94.101852,"lat":30.08605}}
+{"_id":4676206,"name":"Brenham","country":"US","coord":{"lon":-96.397743,"lat":30.16688}}
+{"_id":4676798,"name":"Brownwood","country":"US","coord":{"lon":-98.991158,"lat":31.70932}}
+{"_id":4682688,"name":"Comal County","country":"US","coord":{"lon":-98.300293,"lat":29.816891}}
+{"_id":4683462,"name":"Corsicana","country":"US","coord":{"lon":-96.468872,"lat":32.095428}}
+{"_id":4685892,"name":"Denison","country":"US","coord":{"lon":-96.536659,"lat":33.755661}}
+{"_id":4695317,"name":"Groves","country":"US","coord":{"lon":-93.917122,"lat":29.948271}}
+{"_id":4696233,"name":"Harlingen","country":"US","coord":{"lon":-97.696098,"lat":26.19063}}
+{"_id":4699540,"name":"Huntsville","country":"US","coord":{"lon":-95.550781,"lat":30.72353}}
+{"_id":4703078,"name":"Kerrville","country":"US","coord":{"lon":-99.14032,"lat":30.04743}}
+{"_id":4703384,"name":"Kingsville","country":"US","coord":{"lon":-97.85611,"lat":27.515869}}
+{"_id":4695143,"name":"Gregg County","country":"US","coord":{"lon":-94.816879,"lat":32.516811}}
+{"_id":4736982,"name":"Titus County","country":"US","coord":{"lon":-94.983551,"lat":33.233452}}
+{"_id":4712933,"name":"Mount Pleasant","country":"US","coord":{"lon":-94.968269,"lat":33.156792}}
+{"_id":4713932,"name":"Nederland","country":"US","coord":{"lon":-93.992401,"lat":29.97438}}
+{"_id":4716826,"name":"Orange County","country":"US","coord":{"lon":-93.900169,"lat":30.133539}}
+{"_id":4717560,"name":"Paris","country":"US","coord":{"lon":-95.555511,"lat":33.660938}}
+{"_id":4720039,"name":"Port Arthur","country":"US","coord":{"lon":-93.92878,"lat":29.89883}}
+{"_id":4723410,"name":"Rockwall County","country":"US","coord":{"lon":-96.400261,"lat":32.90012}}
+{"_id":4726290,"name":"San Benito","country":"US","coord":{"lon":-97.631104,"lat":26.13258}}
+{"_id":4734909,"name":"Sulphur Springs","country":"US","coord":{"lon":-95.601067,"lat":33.138451}}
+{"_id":4736096,"name":"Texarkana","country":"US","coord":{"lon":-94.047691,"lat":33.425121}}
+{"_id":4738721,"name":"Uvalde","country":"US","coord":{"lon":-99.786171,"lat":29.209681}}
+{"_id":4739167,"name":"Victoria County","country":"US","coord":{"lon":-96.950256,"lat":28.7836}}
+{"_id":4717644,"name":"Parker County","country":"US","coord":{"lon":-97.800308,"lat":32.7668}}
+{"_id":4770746,"name":"Loudoun County","country":"US","coord":{"lon":-77.649712,"lat":39.083439}}
+{"_id":4752255,"name":"Chesterfield County","country":"US","coord":{"lon":-77.599709,"lat":37.38348}}
+{"_id":4782181,"name":"Roanoke County","country":"US","coord":{"lon":-80.049759,"lat":37.28347}}
+{"_id":4755280,"name":"Danville","country":"US","coord":{"lon":-79.39502,"lat":36.585972}}
+{"_id":4762988,"name":"Hanover County","country":"US","coord":{"lon":-77.48304,"lat":37.750141}}
+{"_id":4792867,"name":"West Lynchburg","country":"US","coord":{"lon":-79.178078,"lat":37.403198}}
+{"_id":4819310,"name":"Raleigh County","country":"US","coord":{"lon":-81.249817,"lat":37.750111}}
+{"_id":4798308,"name":"Beckley","country":"US","coord":{"lon":-81.188164,"lat":37.778172}}
+{"_id":4808274,"name":"Harrison County","country":"US","coord":{"lon":-80.383148,"lat":39.283421}}
+{"_id":4802316,"name":"Clarksburg","country":"US","coord":{"lon":-80.344528,"lat":39.280651}}
+{"_id":4813754,"name":"Marion County","country":"US","coord":{"lon":-80.249802,"lat":39.51675}}
+{"_id":4805404,"name":"Fairmont","country":"US","coord":{"lon":-80.142578,"lat":39.485081}}
+{"_id":4800996,"name":"Cabell County","country":"US","coord":{"lon":-82.24987,"lat":38.433418}}
+{"_id":4809537,"name":"Huntington","country":"US","coord":{"lon":-82.445152,"lat":38.41925}}
+{"_id":4798686,"name":"Berkeley County","country":"US","coord":{"lon":-78.033058,"lat":39.4501}}
+{"_id":4815207,"name":"Monongalia County","country":"US","coord":{"lon":-80.033119,"lat":39.650082}}
+{"_id":4815352,"name":"Morgantown","country":"US","coord":{"lon":-79.955902,"lat":39.629532}}
+{"_id":4817641,"name":"Parkersburg","country":"US","coord":{"lon":-81.561508,"lat":39.266739}}
+{"_id":4828193,"name":"Sherwood","country":"US","coord":{"lon":-92.224319,"lat":34.81509}}
+{"_id":4522889,"name":"Ross County","country":"US","coord":{"lon":-83.066566,"lat":39.35006}}
+{"_id":4828890,"name":"Chillicothe","country":"US","coord":{"lon":-82.982399,"lat":39.333118}}
+{"_id":4829307,"name":"Bay City","country":"US","coord":{"lon":-95.969398,"lat":28.982759}}
+{"_id":4830796,"name":"Auburn","country":"US","coord":{"lon":-85.480782,"lat":32.609859}}
+{"_id":4890213,"name":"DuPage County","country":"US","coord":{"lon":-88.083397,"lat":41.833359}}
+{"_id":4952349,"name":"Suffolk County","country":"US","coord":{"lon":-71.082832,"lat":42.333431}}
+{"_id":4835806,"name":"Hartford County","country":"US","coord":{"lon":-72.766212,"lat":41.766769}}
+{"_id":4838627,"name":"Middlesex County","country":"US","coord":{"lon":-72.532867,"lat":41.46677}}
+{"_id":4848489,"name":"Bettendorf","country":"US","coord":{"lon":-90.515694,"lat":41.524479}}
+{"_id":4849826,"name":"Burlington","country":"US","coord":{"lon":-91.112923,"lat":40.807541}}
+{"_id":4850699,"name":"Cedar Falls","country":"US","coord":{"lon":-92.445473,"lat":42.52776}}
+{"_id":4852032,"name":"Clinton County","country":"US","coord":{"lon":-90.55014,"lat":41.883362}}
+{"_id":4852022,"name":"Clinton","country":"US","coord":{"lon":-90.188744,"lat":41.844471}}
+{"_id":4852052,"name":"Clinton Stock Yards","country":"US","coord":{"lon":-90.222633,"lat":41.8167}}
+{"_id":4854529,"name":"Dubuque","country":"US","coord":{"lon":-90.664574,"lat":42.500561}}
+{"_id":4866371,"name":"Marshalltown","country":"US","coord":{"lon":-92.907982,"lat":42.049431}}
+{"_id":4876523,"name":"Sioux City","country":"US","coord":{"lon":-96.400307,"lat":42.499989}}
+{"_id":4887442,"name":"Chicago Heights","country":"US","coord":{"lon":-87.635597,"lat":41.506149}}
+{"_id":4893392,"name":"Galesburg","country":"US","coord":{"lon":-90.371239,"lat":40.947819}}
+{"_id":4900817,"name":"Macomb","country":"US","coord":{"lon":-90.671799,"lat":40.459209}}
+{"_id":4919381,"name":"Crawfordsville","country":"US","coord":{"lon":-86.874451,"lat":40.041149}}
+{"_id":4918273,"name":"Boone County","country":"US","coord":{"lon":-86.46917,"lat":40.04837}}
+{"_id":4928096,"name":"West Lafayette","country":"US","coord":{"lon":-86.908073,"lat":40.425869}}
+{"_id":4938757,"name":"Hampshire County","country":"US","coord":{"lon":-72.58287,"lat":42.33342}}
+{"_id":4931181,"name":"Braintree","country":"US","coord":{"lon":-70.999489,"lat":42.222321}}
+{"_id":4957280,"name":"Bangor","country":"US","coord":{"lon":-68.777809,"lat":44.801182}}
+{"_id":4985153,"name":"Battle Creek","country":"US","coord":{"lon":-85.17971,"lat":42.321152}}
+{"_id":4985180,"name":"Bay City","country":"US","coord":{"lon":-83.888863,"lat":43.594471}}
+{"_id":4991640,"name":"East Lansing","country":"US","coord":{"lon":-84.483871,"lat":42.73698}}
+{"_id":5000947,"name":"Marquette","country":"US","coord":{"lon":-87.395416,"lat":46.543541}}
+{"_id":5002714,"name":"Mount Pleasant","country":"US","coord":{"lon":-84.767509,"lat":43.597809}}
+{"_id":5006233,"name":"Port Huron","country":"US","coord":{"lon":-82.424911,"lat":42.97086}}
+{"_id":5014208,"name":"Waverly","country":"US","coord":{"lon":-84.620819,"lat":42.739201}}
+{"_id":5016024,"name":"Albert Lea","country":"US","coord":{"lon":-93.368271,"lat":43.64801}}
+{"_id":5020499,"name":"Carver County","country":"US","coord":{"lon":-93.783569,"lat":44.799961}}
+{"_id":5051936,"name":"Washington County","country":"US","coord":{"lon":-92.916878,"lat":45.033298}}
+{"_id":5030005,"name":"Hibbing","country":"US","coord":{"lon":-92.937691,"lat":47.427151}}
+{"_id":5037790,"name":"Minnetonka Mills","country":"US","coord":{"lon":-93.441902,"lat":44.941071}}
+{"_id":5038108,"name":"Moorhead","country":"US","coord":{"lon":-96.767578,"lat":46.873852}}
+{"_id":5052916,"name":"Willmar","country":"US","coord":{"lon":-95.043343,"lat":45.12191}}
+{"_id":5053164,"name":"Winona County","country":"US","coord":{"lon":-91.766823,"lat":43.966629}}
+{"_id":5055787,"name":"Kirksville","country":"US","coord":{"lon":-92.583252,"lat":40.194752}}
+{"_id":5058559,"name":"Cass County","country":"US","coord":{"lon":-97.225372,"lat":46.941639}}
+{"_id":5062096,"name":"Stutsman County","country":"US","coord":{"lon":-98.933609,"lat":46.958328}}
+{"_id":5059836,"name":"Jamestown","country":"US","coord":{"lon":-98.708443,"lat":46.910542}}
+{"_id":5062458,"name":"West Fargo","country":"US","coord":{"lon":-96.90036,"lat":46.874969}}
+{"_id":5066001,"name":"Columbus","country":"US","coord":{"lon":-97.368378,"lat":41.429729}}
+{"_id":5067039,"name":"Dodge County","country":"US","coord":{"lon":-96.633636,"lat":41.566669}}
+{"_id":5069297,"name":"Grand Island","country":"US","coord":{"lon":-98.34201,"lat":40.925011}}
+{"_id":5069802,"name":"Hastings","country":"US","coord":{"lon":-98.38839,"lat":40.586121}}
+{"_id":5071348,"name":"Kearney","country":"US","coord":{"lon":-99.081482,"lat":40.699459}}
+{"_id":5073965,"name":"Norfolk","country":"US","coord":{"lon":-97.417,"lat":42.028339}}
+{"_id":5067114,"name":"Douglas County","country":"US","coord":{"lon":-96.166969,"lat":41.299999}}
+{"_id":5093237,"name":"Strafford County","country":"US","coord":{"lon":-71.049507,"lat":43.31675}}
+{"_id":5099357,"name":"Hudson County","country":"US","coord":{"lon":-74.066254,"lat":40.71677}}
+{"_id":5101090,"name":"Mercer County","country":"US","coord":{"lon":-74.882942,"lat":40.383438}}
+{"_id":5127354,"name":"Montgomery County","country":"US","coord":{"lon":-74.416252,"lat":42.883411}}
+{"_id":5107152,"name":"Amsterdam","country":"US","coord":{"lon":-74.188187,"lat":42.93869}}
+{"_id":5112035,"name":"Centereach","country":"US","coord":{"lon":-73.099548,"lat":40.858429}}
+{"_id":5113790,"name":"Cortland","country":"US","coord":{"lon":-76.180481,"lat":42.601181}}
+{"_id":5116119,"name":"Eastchester","country":"US","coord":{"lon":-73.832909,"lat":40.8876}}
+{"_id":5116497,"name":"Elmira","country":"US","coord":{"lon":-76.807732,"lat":42.089802}}
+{"_id":5128654,"name":"Newburgh","country":"US","coord":{"lon":-74.010422,"lat":41.503429}}
+{"_id":5130081,"name":"Oswego","country":"US","coord":{"lon":-76.510498,"lat":43.455349}}
+{"_id":5134295,"name":"Rome","country":"US","coord":{"lon":-75.455727,"lat":43.212849}}
+{"_id":5122581,"name":"Jefferson County","country":"US","coord":{"lon":-75.899651,"lat":44.05006}}
+{"_id":5143396,"name":"Watertown","country":"US","coord":{"lon":-75.910759,"lat":43.974781}}
+{"_id":5146062,"name":"Ashland County","country":"US","coord":{"lon":-82.266548,"lat":40.816719}}
+{"_id":5146055,"name":"Ashland","country":"US","coord":{"lon":-82.318222,"lat":40.868671}}
+{"_id":5146089,"name":"Ashtabula","country":"US","coord":{"lon":-80.78981,"lat":41.865051}}
+{"_id":5162517,"name":"Medina County","country":"US","coord":{"lon":-81.883186,"lat":41.100052}}
+{"_id":5151861,"name":"Defiance","country":"US","coord":{"lon":-84.355782,"lat":41.284489}}
+{"_id":5156770,"name":"Hancock County","country":"US","coord":{"lon":-83.666603,"lat":41.01672}}
+{"_id":5153924,"name":"Findlay","country":"US","coord":{"lon":-83.649933,"lat":41.04422}}
+{"_id":5170698,"name":"Sandusky County","country":"US","coord":{"lon":-83.133247,"lat":41.350052}}
+{"_id":5161723,"name":"Mansfield","country":"US","coord":{"lon":-82.51545,"lat":40.758389}}
+{"_id":5174669,"name":"Union County","country":"US","coord":{"lon":-83.383263,"lat":40.30006}}
+{"_id":5159891,"name":"Knox County","country":"US","coord":{"lon":-82.372101,"lat":40.400059}}
+{"_id":5164390,"name":"New Philadelphia","country":"US","coord":{"lon":-81.445671,"lat":40.489792}}
+{"_id":5158275,"name":"Huron County","country":"US","coord":{"lon":-82.549896,"lat":41.150051}}
+{"_id":5159079,"name":"Jefferson County","country":"US","coord":{"lon":-80.750076,"lat":40.36673}}
+{"_id":5197646,"name":"Lehigh County","country":"US","coord":{"lon":-75.624908,"lat":40.75037}}
+{"_id":5178195,"name":"Altoona","country":"US","coord":{"lon":-78.394737,"lat":40.518681}}
+{"_id":5203809,"name":"Northampton County","country":"US","coord":{"lon":-75.249901,"lat":40.87537}}
+{"_id":5200801,"name":"Mercer County","country":"US","coord":{"lon":-80.500069,"lat":41.375332}}
+{"_id":5193309,"name":"Hermitage","country":"US","coord":{"lon":-80.448677,"lat":41.233391}}
+{"_id":5201756,"name":"Montgomery County","country":"US","coord":{"lon":-75.499901,"lat":40.375381}}
+{"_id":5197522,"name":"Lebanon County","country":"US","coord":{"lon":-76.624969,"lat":40.50037}}
+{"_id":5219013,"name":"Westmoreland County","country":"US","coord":{"lon":-79.625053,"lat":40.62534}}
+{"_id":5196674,"name":"Lackawanna County","country":"US","coord":{"lon":-75.624908,"lat":41.625359}}
+{"_id":5213681,"name":"State College","country":"US","coord":{"lon":-77.860001,"lat":40.7934}}
+{"_id":5219585,"name":"Williamsport","country":"US","coord":{"lon":-77.001083,"lat":41.241192}}
+{"_id":5223601,"name":"Newport County","country":"US","coord":{"lon":-71.249489,"lat":41.583439}}
+{"_id":5225857,"name":"Aberdeen","country":"US","coord":{"lon":-98.486481,"lat":45.464699}}
+{"_id":5229794,"name":"Mitchell","country":"US","coord":{"lon":-98.0298,"lat":43.709431}}
+{"_id":5240509,"name":"Rutland","country":"US","coord":{"lon":-72.97261,"lat":43.610619}}
+{"_id":5251436,"name":"Eau Claire","country":"US","coord":{"lon":-91.498489,"lat":44.811352}}
+{"_id":5261585,"name":"Manitowoc","country":"US","coord":{"lon":-87.657578,"lat":44.088612}}
+{"_id":5261969,"name":"Marshfield","country":"US","coord":{"lon":-90.171799,"lat":44.66885}}
+{"_id":5262634,"name":"Menomonie","country":"US","coord":{"lon":-91.919342,"lat":44.875519}}
+{"_id":5264870,"name":"North La Crosse","country":"US","coord":{"lon":-91.248192,"lat":43.846352}}
+{"_id":5272893,"name":"Sheboygan","country":"US","coord":{"lon":-87.714531,"lat":43.750832}}
+{"_id":5275191,"name":"Superior","country":"US","coord":{"lon":-92.10408,"lat":46.720772}}
+{"_id":5280351,"name":"Hancock County","country":"US","coord":{"lon":-80.56646,"lat":40.500622}}
+{"_id":5280854,"name":"Wheeling","country":"US","coord":{"lon":-80.720909,"lat":40.063961}}
+{"_id":5287565,"name":"Bullhead City","country":"US","coord":{"lon":-114.568298,"lat":35.147781}}
+{"_id":5288636,"name":"Casa Grande","country":"US","coord":{"lon":-111.757347,"lat":32.879501}}
+{"_id":5293083,"name":"Douglas","country":"US","coord":{"lon":-109.545341,"lat":31.344549}}
+{"_id":5294167,"name":"Eloy","country":"US","coord":{"lon":-111.55484,"lat":32.755901}}
+{"_id":5295143,"name":"Fortuna Foothills","country":"US","coord":{"lon":-114.411888,"lat":32.657829}}
+{"_id":5301067,"name":"Kingman","country":"US","coord":{"lon":-114.053009,"lat":35.189442}}
+{"_id":5301388,"name":"Lake Havasu City","country":"US","coord":{"lon":-114.322449,"lat":34.483898}}
+{"_id":5308305,"name":"Payson","country":"US","coord":{"lon":-111.325142,"lat":34.230869}}
+{"_id":5309842,"name":"Prescott","country":"US","coord":{"lon":-112.468498,"lat":34.54002}}
+{"_id":5311433,"name":"Rio Rico","country":"US","coord":{"lon":-110.976479,"lat":31.471479}}
+{"_id":5312913,"name":"San Luis","country":"US","coord":{"lon":-114.782181,"lat":32.487}}
+{"_id":5322053,"name":"Yuma","country":"US","coord":{"lon":-114.624397,"lat":32.725319}}
+{"_id":5324802,"name":"Arroyo Grande","country":"US","coord":{"lon":-120.590729,"lat":35.118591}}
+{"_id":5325187,"name":"Atwater","country":"US","coord":{"lon":-120.609077,"lat":37.347721}}
+{"_id":5325327,"name":"Avenal","country":"US","coord":{"lon":-120.129028,"lat":36.00412}}
+{"_id":5326297,"name":"Barstow","country":"US","coord":{"lon":-117.02282,"lat":34.89859}}
+{"_id":5326305,"name":"Barstow Heights","country":"US","coord":{"lon":-117.056152,"lat":34.869709}}
+{"_id":5329649,"name":"Blythe","country":"US","coord":{"lon":-114.596352,"lat":33.610298}}
+{"_id":5330567,"name":"Brawley","country":"US","coord":{"lon":-115.530273,"lat":32.978661}}
+{"_id":5345659,"name":"El Dorado County","country":"US","coord":{"lon":-120.5177,"lat":38.766571}}
+{"_id":5335006,"name":"Cathedral City","country":"US","coord":{"lon":-116.465286,"lat":33.779739}}
+{"_id":5335650,"name":"Ceres","country":"US","coord":{"lon":-120.95771,"lat":37.594929}}
+{"_id":5336667,"name":"Chowchilla","country":"US","coord":{"lon":-120.260178,"lat":37.123001}}
+{"_id":5337908,"name":"Clearlake","country":"US","coord":{"lon":-122.626373,"lat":38.958229}}
+{"_id":5338166,"name":"Coachella","country":"US","coord":{"lon":-116.173889,"lat":33.680302}}
+{"_id":5338683,"name":"Clovis","country":"US","coord":{"lon":-119.620689,"lat":36.866341}}
+{"_id":5342485,"name":"Delano","country":"US","coord":{"lon":-119.247047,"lat":35.768841}}
+{"_id":5345609,"name":"El Centro","country":"US","coord":{"lon":-115.563049,"lat":32.792}}
+{"_id":5354172,"name":"Greenfield","country":"US","coord":{"lon":-121.243813,"lat":36.320801}}
+{"_id":5355180,"name":"Hanford","country":"US","coord":{"lon":-119.645683,"lat":36.32745}}
+{"_id":5359446,"name":"Indio","country":"US","coord":{"lon":-116.215561,"lat":33.720581}}
+{"_id":5364079,"name":"La Quinta","country":"US","coord":{"lon":-116.310013,"lat":33.663361}}
+{"_id":5365918,"name":"Lemoore","country":"US","coord":{"lon":-119.782913,"lat":36.300781}}
+{"_id":5368453,"name":"Los Banos","country":"US","coord":{"lon":-120.849922,"lat":37.058281}}
+{"_id":5368518,"name":"Los Gatos","country":"US","coord":{"lon":-121.974678,"lat":37.226608}}
+{"_id":5369568,"name":"Madera","country":"US","coord":{"lon":-120.060722,"lat":36.961342}}
+{"_id":5378870,"name":"Oildale","country":"US","coord":{"lon":-119.019547,"lat":35.419682}}
+{"_id":5381002,"name":"Paradise","country":"US","coord":{"lon":-121.621918,"lat":39.759609}}
+{"_id":5381438,"name":"Paso Robles","country":"US","coord":{"lon":-120.691002,"lat":35.62664}}
+{"_id":5384471,"name":"Porterville","country":"US","coord":{"lon":-119.016769,"lat":36.065231}}
+{"_id":5387494,"name":"Ridgecrest","country":"US","coord":{"lon":-117.670898,"lat":35.622459}}
+{"_id":5392034,"name":"San Gabriel","country":"US","coord":{"lon":-118.105827,"lat":34.096111}}
+{"_id":5392868,"name":"Sanger","country":"US","coord":{"lon":-119.555969,"lat":36.708012}}
+{"_id":5393180,"name":"Santa Maria","country":"US","coord":{"lon":-120.435722,"lat":34.95303}}
+{"_id":5394329,"name":"Selma","country":"US","coord":{"lon":-119.612083,"lat":36.570782}}
+{"_id":5394842,"name":"Shafter","country":"US","coord":{"lon":-119.271782,"lat":35.500511}}
+{"_id":5397018,"name":"Soledad","country":"US","coord":{"lon":-121.326317,"lat":36.42469}}
+{"_id":5397664,"name":"South Lake Tahoe","country":"US","coord":{"lon":-119.984352,"lat":38.933239}}
+{"_id":5397851,"name":"South Yuba City","country":"US","coord":{"lon":-121.63913,"lat":39.116562}}
+{"_id":5399629,"name":"Suisun","country":"US","coord":{"lon":-122.040237,"lat":38.238251}}
+{"_id":5403783,"name":"Tulare","country":"US","coord":{"lon":-119.347343,"lat":36.207729}}
+{"_id":5404198,"name":"Twentynine Palms","country":"US","coord":{"lon":-116.054169,"lat":34.135559}}
+{"_id":5404476,"name":"Ukiah","country":"US","coord":{"lon":-123.207779,"lat":39.150169}}
+{"_id":5431710,"name":"Montrose","country":"US","coord":{"lon":-107.876167,"lat":38.478321}}
+{"_id":5435464,"name":"Pueblo","country":"US","coord":{"lon":-104.609138,"lat":38.254452}}
+{"_id":5435477,"name":"Pueblo West","country":"US","coord":{"lon":-104.722748,"lat":38.349998}}
+{"_id":5445439,"name":"Garden City","country":"US","coord":{"lon":-100.872658,"lat":37.971691}}
+{"_id":5460459,"name":"Carlsbad","country":"US","coord":{"lon":-104.228844,"lat":32.42067}}
+{"_id":5462393,"name":"Clovis","country":"US","coord":{"lon":-103.205231,"lat":34.4048}}
+{"_id":5468773,"name":"Gallup","country":"US","coord":{"lon":-108.742577,"lat":35.52808}}
+{"_id":5471578,"name":"Hobbs","country":"US","coord":{"lon":-103.13604,"lat":32.70261}}
+{"_id":5503766,"name":"Enterprise","country":"US","coord":{"lon":-115.241943,"lat":36.025249}}
+{"_id":5509851,"name":"Pahrump","country":"US","coord":{"lon":-115.98391,"lat":36.20829}}
+{"_id":5509952,"name":"Paradise","country":"US","coord":{"lon":-115.14666,"lat":36.097191}}
+{"_id":5517061,"name":"Big Spring","country":"US","coord":{"lon":-101.478737,"lat":32.250401}}
+{"_id":5520076,"name":"Del Rio","country":"US","coord":{"lon":-100.896759,"lat":29.36273}}
+{"_id":5520677,"name":"Eagle Pass","country":"US","coord":{"lon":-100.499519,"lat":28.709141}}
+{"_id":5520004,"name":"Deaf Smith County","country":"US","coord":{"lon":-102.600487,"lat":34.966728}}
+{"_id":5523074,"name":"Hereford","country":"US","coord":{"lon":-102.397697,"lat":34.81506}}
+{"_id":5523369,"name":"Horizon City","country":"US","coord":{"lon":-106.207481,"lat":31.69261}}
+{"_id":5525577,"name":"Lubbock","country":"US","coord":{"lon":-101.855171,"lat":33.577862}}
+{"_id":5527953,"name":"Pampa","country":"US","coord":{"lon":-100.959869,"lat":35.53616}}
+{"_id":5530932,"name":"Socorro","country":"US","coord":{"lon":-106.303307,"lat":31.65456}}
+{"_id":5530937,"name":"Socorro Mission Number 1 Colonia","country":"US","coord":{"lon":-106.290543,"lat":31.636221}}
+{"_id":5533366,"name":"West Odessa","country":"US","coord":{"lon":-102.498756,"lat":31.84235}}
+{"_id":5546220,"name":"Saint George","country":"US","coord":{"lon":-113.584122,"lat":37.104149}}
+{"_id":5549222,"name":"Washington","country":"US","coord":{"lon":-113.508293,"lat":37.130539}}
+{"_id":5550368,"name":"Wasco","country":"US","coord":{"lon":-119.34095,"lat":35.59412}}
+{"_id":5566544,"name":"Lassen County","country":"US","coord":{"lon":-120.584396,"lat":40.666561}}
+{"_id":5572400,"name":"Susanville","country":"US","coord":{"lon":-120.653008,"lat":40.416279}}
+{"_id":5587975,"name":"Canyon County","country":"US","coord":{"lon":-116.95932,"lat":43.87516}}
+{"_id":5584639,"name":"Bannock County","country":"US","coord":{"lon":-112.212189,"lat":42.650749}}
+{"_id":5604045,"name":"Pocatello","country":"US","coord":{"lon":-112.445534,"lat":42.8713}}
+{"_id":5605242,"name":"Rexburg","country":"US","coord":{"lon":-111.789688,"lat":43.826019}}
+{"_id":5610810,"name":"Twin Falls","country":"US","coord":{"lon":-114.460869,"lat":42.562969}}
+{"_id":5641727,"name":"Bozeman","country":"US","coord":{"lon":-111.038559,"lat":45.679649}}
+{"_id":5677822,"name":"Silver Bow County","country":"US","coord":{"lon":-112.667526,"lat":45.899929}}
+{"_id":5642934,"name":"Butte","country":"US","coord":{"lon":-112.534737,"lat":46.003819}}
+{"_id":5655240,"name":"Great Falls","country":"US","coord":{"lon":-111.300812,"lat":47.50024}}
+{"_id":5666639,"name":"Missoula","country":"US","coord":{"lon":-113.994003,"lat":46.87215}}
+{"_id":5688266,"name":"Burleigh County","country":"US","coord":{"lon":-100.461502,"lat":46.958328}}
+{"_id":5690583,"name":"Morton County","country":"US","coord":{"lon":-101.261528,"lat":46.772221}}
+{"_id":5690366,"name":"Mandan","country":"US","coord":{"lon":-100.88958,"lat":46.82666}}
+{"_id":5697939,"name":"North Platte","country":"US","coord":{"lon":-100.765419,"lat":41.12389}}
+{"_id":5699397,"name":"Scotts Bluff County","country":"US","coord":{"lon":-103.7005,"lat":41.866631}}
+{"_id":5699404,"name":"Scottsbluff","country":"US","coord":{"lon":-103.667168,"lat":41.866631}}
+{"_id":5703670,"name":"Elko","country":"US","coord":{"lon":-115.763123,"lat":40.83242}}
+{"_id":5711149,"name":"Altamont","country":"US","coord":{"lon":-121.737221,"lat":42.20681}}
+{"_id":5720502,"name":"Coos County","country":"US","coord":{"lon":-124.001488,"lat":43.1665}}
+{"_id":5720495,"name":"Coos Bay","country":"US","coord":{"lon":-124.217888,"lat":43.366501}}
+{"_id":5742126,"name":"Multnomah County","country":"US","coord":{"lon":-122.41787,"lat":45.500118}}
+{"_id":5735238,"name":"Klamath Falls","country":"US","coord":{"lon":-121.78167,"lat":42.224869}}
+{"_id":5749352,"name":"Roseburg","country":"US","coord":{"lon":-123.341743,"lat":43.216499}}
+{"_id":5768233,"name":"Rapid City","country":"US","coord":{"lon":-103.23101,"lat":44.08054}}
+{"_id":5779548,"name":"Payson","country":"US","coord":{"lon":-111.732147,"lat":40.044399}}
+{"_id":5781061,"name":"Sandy City","country":"US","coord":{"lon":-111.860558,"lat":40.572041}}
+{"_id":5786991,"name":"Benton County","country":"US","coord":{"lon":-119.484467,"lat":46.266521}}
+{"_id":5791206,"name":"Cowlitz County","country":"US","coord":{"lon":-122.684547,"lat":46.199829}}
+{"_id":5803990,"name":"Moses Lake","country":"US","coord":{"lon":-119.278084,"lat":47.130138}}
+{"_id":5807540,"name":"Pullman","country":"US","coord":{"lon":-117.179619,"lat":46.73127}}
+{"_id":5810301,"name":"Shoreline","country":"US","coord":{"lon":-122.341522,"lat":47.75565}}
+{"_id":5812604,"name":"Sunnyside","country":"US","coord":{"lon":-120.008652,"lat":46.323738}}
+{"_id":5815342,"name":"Wenatchee","country":"US","coord":{"lon":-120.310349,"lat":47.423458}}
+{"_id":5826027,"name":"Gillette","country":"US","coord":{"lon":-105.50222,"lat":44.291088}}
+{"_id":5830062,"name":"Laramie","country":"US","coord":{"lon":-105.591103,"lat":41.311371}}
+{"_id":5836898,"name":"Rock Springs","country":"US","coord":{"lon":-109.202904,"lat":41.58746}}
+{"_id":5838199,"name":"Sheridan County","country":"US","coord":{"lon":-106.91729,"lat":44.833309}}
+{"_id":5838198,"name":"Sheridan","country":"US","coord":{"lon":-106.956177,"lat":44.797192}}
+{"_id":5850871,"name":"Maui County","country":"US","coord":{"lon":-156.500565,"lat":20.866671}}
+{"_id":5847411,"name":"Kahului","country":"US","coord":{"lon":-156.470001,"lat":20.89472}}
+{"_id":5847486,"name":"Kailua","country":"US","coord":{"lon":-157.739441,"lat":21.40222}}
+{"_id":5848189,"name":"Kaneohe","country":"US","coord":{"lon":-157.803604,"lat":21.41806}}
+{"_id":5849297,"name":"Kihei","country":"US","coord":{"lon":-156.465561,"lat":20.785}}
+{"_id":5850554,"name":"Makakilo City","country":"US","coord":{"lon":-158.085831,"lat":21.346939}}
+{"_id":5851030,"name":"Mililani Town","country":"US","coord":{"lon":-158.001114,"lat":21.450001}}
+{"_id":5853992,"name":"Wahiawa","country":"US","coord":{"lon":-158.023605,"lat":21.502781}}
+{"_id":5854496,"name":"Wailuku","country":"US","coord":{"lon":-156.504715,"lat":20.891109}}
+{"_id":5879898,"name":"Badger","country":"US","coord":{"lon":-147.533325,"lat":64.800003}}
+{"_id":6332309,"name":"Cutler Bay","country":"US","coord":{"lon":-80.3377,"lat":25.5783}}
+{"_id":7262790,"name":"Schofield Barracks","country":"US","coord":{"lon":-158.061508,"lat":21.493601}}
+{"_id":102908597,"name":"Gerton","country":"US","coord":{"lon":-82.348056,"lat":35.479167}}
+{"_id":4330185,"name":"Lafourche Parish","country":"US","coord":{"lon":-90.383408,"lat":29.566879}}
+{"_id":4337845,"name":"Port Fourchon","country":"US","coord":{"lon":-90.194519,"lat":29.105789}}
+{"_id":4337142,"name":"Pilottown","country":"US","coord":{"lon":-89.257553,"lat":29.18161}}
+{"_id":4330751,"name":"Leeville","country":"US","coord":{"lon":-90.207581,"lat":29.247999}}
+{"_id":4692856,"name":"Galveston County","country":"US","coord":{"lon":-94.966873,"lat":29.366899}}
+{"_id":4671160,"name":"Arcadia","country":"US","coord":{"lon":-95.120209,"lat":29.383289}}
+{"_id":4343313,"name":"Terrebonne Parish","country":"US","coord":{"lon":-90.85009,"lat":29.37661}}
+{"_id":7708264,"name":"Donna Lynns Mobile Home Park","country":"US","coord":{"lon":-90.960449,"lat":29.639339}}
+{"_id":4695361,"name":"Guadalupe County","country":"US","coord":{"lon":-97.966949,"lat":29.5669}}
+{"_id":4716663,"name":"Olmos","country":"US","coord":{"lon":-98.03389,"lat":29.44079}}
+{"_id":4145709,"name":"Alachua County","country":"US","coord":{"lon":-82.33316,"lat":29.70858}}
+{"_id":4162526,"name":"Lochloosa","country":"US","coord":{"lon":-82.100372,"lat":29.511641}}
+{"_id":4328978,"name":"Jefferson Parish","country":"US","coord":{"lon":-90.100067,"lat":29.73354}}
+{"_id":4330172,"name":"Lafitte","country":"US","coord":{"lon":-90.108414,"lat":29.66688}}
+{"_id":5524590,"name":"Kinney County","country":"US","coord":{"lon":-100.417023,"lat":29.33357}}
+{"_id":5525474,"name":"Lost Creek Place","country":"US","coord":{"lon":-100.17952,"lat":29.609119}}
+{"_id":4161127,"name":"Lafayette County","country":"US","coord":{"lon":-83.208191,"lat":29.958561}}
+{"_id":4175568,"name":"Townsend","country":"US","coord":{"lon":-83.33931,"lat":30.12911}}
+{"_id":4318690,"name":"Cameron Parish","country":"US","coord":{"lon":-93.21682,"lat":29.86688}}
+{"_id":4326758,"name":"Hackberry","country":"US","coord":{"lon":-93.342102,"lat":29.99605}}
+{"_id":4153840,"name":"Duval County","country":"US","coord":{"lon":-81.631477,"lat":30.356911}}
+{"_id":4146885,"name":"Bayard","country":"US","coord":{"lon":-81.512863,"lat":30.143579}}
+{"_id":4318583,"name":"Calcasieu Parish","country":"US","coord":{"lon":-93.350159,"lat":30.23354}}
+{"_id":4327698,"name":"Holmwood","country":"US","coord":{"lon":-93.079872,"lat":30.12604}}
+{"_id":4436296,"name":"Mississippi","country":"US","coord":{"lon":-89.750359,"lat":32.750408}}
+{"_id":4428961,"name":"Hancock County","country":"US","coord":{"lon":-89.398376,"lat":30.35158}}
+{"_id":4416315,"name":"Ansley","country":"US","coord":{"lon":-89.483658,"lat":30.225201}}
+{"_id":5517580,"name":"Brewster County","country":"US","coord":{"lon":-103.251007,"lat":29.833521}}
+{"_id":5525016,"name":"Lenox","country":"US","coord":{"lon":-103.378792,"lat":30.236549}}
+{"_id":4737316,"name":"Travis County","country":"US","coord":{"lon":-97.800293,"lat":30.33354}}
+{"_id":4708350,"name":"Lund","country":"US","coord":{"lon":-97.396393,"lat":30.406601}}
+{"_id":4677612,"name":"Burnet County","country":"US","coord":{"lon":-98.18364,"lat":30.78352}}
+{"_id":4733544,"name":"Spicewood","country":"US","coord":{"lon":-98.15641,"lat":30.47547}}
+{"_id":4146810,"name":"Bay County","country":"US","coord":{"lon":-85.624367,"lat":30.20853}}
+{"_id":4147546,"name":"Betts","country":"US","coord":{"lon":-85.393257,"lat":30.537689}}
+{"_id":4677558,"name":"Burleson County","country":"US","coord":{"lon":-96.61692,"lat":30.51687}}
+{"_id":4680367,"name":"Chances Store","country":"US","coord":{"lon":-96.3908,"lat":30.521311}}
+{"_id":4705179,"name":"Lampasas County","country":"US","coord":{"lon":-98.233643,"lat":31.216829}}
+{"_id":4733487,"name":"Sparks Crossing","country":"US","coord":{"lon":-98.135307,"lat":31.071011}}
+{"_id":4338356,"name":"Rapides Parish","country":"US","coord":{"lon":-92.483467,"lat":31.166849}}
+{"_id":4332064,"name":"Loyd","country":"US","coord":{"lon":-92.358467,"lat":31.04463}}
+{"_id":4829764,"name":"Alabama","country":"US","coord":{"lon":-86.750259,"lat":32.750408}}
+{"_id":4690103,"name":"Falls County","country":"US","coord":{"lon":-96.933601,"lat":31.26684}}
+{"_id":4679930,"name":"Cego","country":"US","coord":{"lon":-97.162498,"lat":31.24518}}
+{"_id":4197000,"name":"Georgia","country":"US","coord":{"lon":-83.500183,"lat":32.75042}}
+{"_id":4197388,"name":"Glynn County","country":"US","coord":{"lon":-81.533157,"lat":31.233561}}
+{"_id":5551752,"name":"Arizona","country":"US","coord":{"lon":-111.500977,"lat":34.500301}}
+{"_id":4717434,"name":"Panola County","country":"US","coord":{"lon":-94.300201,"lat":32.166828}}
+{"_id":4681806,"name":"Clayton","country":"US","coord":{"lon":-94.474922,"lat":32.098221}}
+{"_id":4191654,"name":"Dodge County","country":"US","coord":{"lon":-83.166542,"lat":32.18351}}
+{"_id":4187473,"name":"Chauncey","country":"US","coord":{"lon":-83.06459,"lat":32.104622}}
+{"_id":4332258,"name":"Madison Parish","country":"US","coord":{"lon":-91.251503,"lat":32.36681}}
+{"_id":5481136,"name":"New Mexico","country":"US","coord":{"lon":-106.000847,"lat":34.50034}}
+{"_id":5482932,"name":"Otero County","country":"US","coord":{"lon":-105.767197,"lat":32.533428}}
+{"_id":4701348,"name":"Johnson County","country":"US","coord":{"lon":-97.366959,"lat":32.38348}}
+{"_id":4707535,"name":"Lone Willow","country":"US","coord":{"lon":-97.474739,"lat":32.268761}}
+{"_id":4074246,"name":"Macon County","country":"US","coord":{"lon":-85.81662,"lat":32.400139}}
+{"_id":4057493,"name":"Creek Stand","country":"US","coord":{"lon":-85.477448,"lat":32.29459}}
+{"_id":4670957,"name":"Antioch","country":"US","coord":{"lon":-97.198067,"lat":32.31292}}
+{"_id":4713849,"name":"Navarro County","country":"US","coord":{"lon":-96.466927,"lat":32.050152}}
+{"_id":4738810,"name":"Valley Farms","country":"US","coord":{"lon":-96.40554,"lat":32.307919}}
+{"_id":4047434,"name":"Russell County","country":"US","coord":{"lon":-85.199944,"lat":32.350151}}
+{"_id":4068770,"name":"Hyram","country":"US","coord":{"lon":-85.248001,"lat":32.352921}}
+{"_id":4193042,"name":"Effingham County","country":"US","coord":{"lon":-81.333168,"lat":32.366859}}
+{"_id":4182260,"name":"Bethel","country":"US","coord":{"lon":-81.354828,"lat":32.413799}}
+{"_id":4688864,"name":"Ellis County","country":"US","coord":{"lon":-96.80027,"lat":32.35014}}
+{"_id":4684202,"name":"Crisp","country":"US","coord":{"lon":-96.5811,"lat":32.397919}}
+{"_id":4434666,"name":"Madison County","country":"US","coord":{"lon":-90.064529,"lat":32.56514}}
+{"_id":4433944,"name":"Livingston","country":"US","coord":{"lon":-90.216202,"lat":32.552921}}
+{"_id":5484708,"name":"Point of Sands","country":"US","coord":{"lon":-106.195831,"lat":32.747028}}
+{"_id":5495380,"name":"Tularosa","country":"US","coord":{"lon":-106.0186,"lat":33.073971}}
+{"_id":4679435,"name":"Cass County","country":"US","coord":{"lon":-94.350189,"lat":33.066799}}
+{"_id":4684396,"name":"Crossroads Community Centery","country":"US","coord":{"lon":-94.581871,"lat":33.072899}}
+{"_id":5165418,"name":"Ohio","country":"US","coord":{"lon":-83.000183,"lat":40.25034}}
+{"_id":5161272,"name":"Lorain County","country":"US","coord":{"lon":-82.149872,"lat":41.333382}}
+{"_id":7235893,"name":"Erie West Mobile Home Park","country":"US","coord":{"lon":-82.241943,"lat":41.439171}}
+{"_id":6254927,"name":"Pennsylvania","country":"US","coord":{"lon":-76.90567,"lat":40.272449}}
+{"_id":5188847,"name":"Erie County","country":"US","coord":{"lon":-79.875053,"lat":42.125332}}
+{"_id":5201874,"name":"Moorheadville","country":"US","coord":{"lon":-79.910049,"lat":42.192001}}
+{"_id":5116642,"name":"Erie County","country":"US","coord":{"lon":-78.66642,"lat":42.766731}}
+{"_id":5137842,"name":"Sheenwater","country":"US","coord":{"lon":-79.015877,"lat":42.995331}}
+{"_id":5143455,"name":"Wayne County","country":"US","coord":{"lon":-77.033028,"lat":43.150059}}
+{"_id":5121009,"name":"Holland Cove","country":"US","coord":{"lon":-77.143593,"lat":43.28701}}
+{"_id":5129995,"name":"Orleans County","country":"US","coord":{"lon":-78.233078,"lat":43.25061}}
+{"_id":5125065,"name":"Lomond Shore","country":"US","coord":{"lon":-78.080299,"lat":43.372559}}
+{"_id":5112977,"name":"Clinton County","country":"US","coord":{"lon":-73.682922,"lat":44.733372}}
+{"_id":5130986,"name":"Perry Mills","country":"US","coord":{"lon":-73.506248,"lat":45.00032}}
+{"_id":5242283,"name":"Vermont","country":"US","coord":{"lon":-72.749832,"lat":44.00034}}
+{"_id":5001836,"name":"Michigan","country":"US","coord":{"lon":-85.500328,"lat":44.25029}}
+{"_id":4998067,"name":"Keweenaw County","country":"US","coord":{"lon":-88.200111,"lat":47.366581}}
+{"_id":5007426,"name":"Rock Harbor Lodge","country":"US","coord":{"lon":-88.483681,"lat":48.14571}}
+{"_id":5805553,"name":"Okanogan County","country":"US","coord":{"lon":-119.734512,"lat":48.54987}}
+{"_id":5803757,"name":"Molson","country":"US","coord":{"lon":-119.2006,"lat":48.981022}}
+{"_id":5037779,"name":"Minnesota","country":"US","coord":{"lon":-94.250549,"lat":46.25024}}
+{"_id":5033353,"name":"Kittson County","country":"US","coord":{"lon":-96.783661,"lat":48.766651}}
+{"_id":5049156,"name":"Sultan","country":"US","coord":{"lon":-97.177841,"lat":48.990822}}
+{"_id":5815675,"name":"Whatcom County","country":"US","coord":{"lon":-121.784592,"lat":48.916512}}
+{"_id":5792201,"name":"Delta","country":"US","coord":{"lon":-122.524887,"lat":48.980949}}
+{"_id":5690763,"name":"North Dakota","country":"US","coord":{"lon":-100.000679,"lat":47.500271}}
+{"_id":5060890,"name":"Pembina County","country":"US","coord":{"lon":-97.517029,"lat":48.766659}}
+{"_id":5059771,"name":"Huron City (historical)","country":"US","coord":{"lon":-97.233673,"lat":48.997211}}
+{"_id":5667009,"name":"Montana","country":"US","coord":{"lon":-109.751022,"lat":47.000252}}
+{"_id":5654267,"name":"Glacier County","country":"US","coord":{"lon":-112.967583,"lat":48.649979}}
+{"_id":5661134,"name":"Korner (historical)","country":"US","coord":{"lon":-112.320343,"lat":48.911098}}
+{"_id":5596512,"name":"Idaho","country":"US","coord":{"lon":-114.251183,"lat":44.500198}}
+{"_id":5586641,"name":"Boundary County","country":"US","coord":{"lon":-117.00135,"lat":48.95826}}
+{"_id":5592170,"name":"Eastport","country":"US","coord":{"lon":-116.181313,"lat":48.999401}}
+{"_id":5671269,"name":"Phillips County","country":"US","coord":{"lon":-107.934013,"lat":48.200001}}
+{"_id":5655445,"name":"Greve (historical)","country":"US","coord":{"lon":-107.420082,"lat":48.970299}}
+{"_id":5787895,"name":"Boundary","country":"US","coord":{"lon":-121.605423,"lat":48.998459}}
+{"_id":5523967,"name":"Jeff Davis County","country":"US","coord":{"lon":-104.083801,"lat":30.70015}}
+{"_id":5521715,"name":"Fort Davis","country":"US","coord":{"lon":-103.89463,"lat":30.588209}}
+{"_id":5303754,"name":"Maricopa County","country":"US","coord":{"lon":-112.500717,"lat":33.500038}}
+{"_id":4439115,"name":"Noxubee County","country":"US","coord":{"lon":-88.555878,"lat":33.129009}}
+{"_id":4434357,"name":"Lowndes County","country":"US","coord":{"lon":-88.401711,"lat":33.517059}}
+{"_id":4437979,"name":"Nashville (historical)","country":"US","coord":{"lon":-88.323647,"lat":33.326511}}
+{"_id":5301242,"name":"Komatke","country":"US","coord":{"lon":-112.17543,"lat":33.293381}}
+{"_id":4597040,"name":"South Carolina","country":"US","coord":{"lon":-81.000092,"lat":34.000431}}
+{"_id":4570707,"name":"Berkeley County","country":"US","coord":{"lon":-79.949799,"lat":33.183498}}
+{"_id":4575982,"name":"Cross Cross Roads","country":"US","coord":{"lon":-80.142593,"lat":33.344608}}
+{"_id":4742676,"name":"Wise County","country":"US","coord":{"lon":-97.666969,"lat":33.200119}}
+{"_id":4695096,"name":"Greenwood","country":"US","coord":{"lon":-97.474472,"lat":33.380951}}
+{"_id":5525637,"name":"Lynn County","country":"US","coord":{"lon":-101.833771,"lat":33.166759}}
+{"_id":4099753,"name":"Arkansas","country":"US","coord":{"lon":-92.500443,"lat":34.75037}}
+{"_id":4719006,"name":"Pilot Grove","country":"US","coord":{"lon":-96.424713,"lat":33.437889}}
+{"_id":5332921,"name":"California","country":"US","coord":{"lon":-119.751259,"lat":37.250221}}
+{"_id":5387890,"name":"Riverside County","country":"US","coord":{"lon":-116.050827,"lat":33.733349}}
+{"_id":5363892,"name":"La Cresta Highlands","country":"US","coord":{"lon":-117.346153,"lat":33.5228}}
+{"_id":4681782,"name":"Clay County","country":"US","coord":{"lon":-98.216988,"lat":33.766769}}
+{"_id":4728096,"name":"Shannon","country":"US","coord":{"lon":-98.258942,"lat":33.473999}}
+{"_id":5387307,"name":"Ribbonwood","country":"US","coord":{"lon":-116.498901,"lat":33.570309}}
+{"_id":4675805,"name":"Bowie County","country":"US","coord":{"lon":-94.433533,"lat":33.450119}}
+{"_id":4743093,"name":"Woodstock","country":"US","coord":{"lon":-94.462982,"lat":33.55817}}
+{"_id":4210114,"name":"Morgan County","country":"US","coord":{"lon":-83.383217,"lat":33.583462}}
+{"_id":4117436,"name":"Killin","country":"US","coord":{"lon":-91.741241,"lat":33.612331}}
+{"_id":4130562,"name":"Sevier County","country":"US","coord":{"lon":-94.250481,"lat":33.983452}}
+{"_id":4568959,"name":"Abbeville County","country":"US","coord":{"lon":-82.466522,"lat":34.233452}}
+{"_id":4574333,"name":"Charleston Crossroads","country":"US","coord":{"lon":-82.483742,"lat":34.08123}}
+{"_id":5475934,"name":"Lincoln County","country":"US","coord":{"lon":-105.251106,"lat":34.250629}}
+{"_id":5493952,"name":"Tecolote","country":"US","coord":{"lon":-105.663322,"lat":34.017849}}
+{"_id":4544379,"name":"Oklahoma","country":"US","coord":{"lon":-97.503281,"lat":35.492088}}
+{"_id":4541812,"name":"Love County","country":"US","coord":{"lon":-97.233627,"lat":33.9501}}
+{"_id":4539119,"name":"Hoxbar","country":"US","coord":{"lon":-97.039177,"lat":34.07093}}
+{"_id":5405889,"name":"Ventura County","country":"US","coord":{"lon":-119.017601,"lat":34.46666}}
+{"_id":5401954,"name":"The Colony Mobile Home Park","country":"US","coord":{"lon":-119.138718,"lat":34.16362}}
+{"_id":5295877,"name":"Gila County","country":"US","coord":{"lon":-110.517326,"lat":33.51672}}
+{"_id":4741797,"name":"Wilbarger County","country":"US","coord":{"lon":-99.267021,"lat":34.06675}}
+{"_id":4716202,"name":"Oklaunion","country":"US","coord":{"lon":-99.142853,"lat":34.129532}}
+{"_id":5306233,"name":"Navajo County","country":"US","coord":{"lon":-110.813187,"lat":36.9375}}
+{"_id":5301442,"name":"Lake of the Woods","country":"US","coord":{"lon":-109.989548,"lat":34.163929}}
+{"_id":5391726,"name":"San Bernardino County","country":"US","coord":{"lon":-116.167511,"lat":34.66666}}
+{"_id":5355463,"name":"Harmony Acres","country":"US","coord":{"lon":-116.109451,"lat":34.143608}}
+{"_id":5488372,"name":"Roosevelt County","country":"US","coord":{"lon":-103.450508,"lat":33.966751}}
+{"_id":5457268,"name":"Bethel","country":"US","coord":{"lon":-103.474678,"lat":34.228691}}
+{"_id":5399922,"name":"Sun Valley","country":"US","coord":{"lon":-118.370361,"lat":34.217499}}
+{"_id":4529605,"name":"Atoka County","country":"US","coord":{"lon":-96.01693,"lat":34.400089}}
+{"_id":4530363,"name":"Bentley","country":"US","coord":{"lon":-96.07888,"lat":34.214821}}
+{"_id":5301232,"name":"Kohls Ranch","country":"US","coord":{"lon":-111.094299,"lat":34.32531}}
+{"_id":5464151,"name":"Curry County","country":"US","coord":{"lon":-103.251892,"lat":34.952839}}
+{"_id":5470124,"name":"Grier","country":"US","coord":{"lon":-103.398567,"lat":34.410629}}
+{"_id":5494881,"name":"Torrance County","country":"US","coord":{"lon":-105.81723,"lat":34.6334}}
+{"_id":5490606,"name":"Scholle","country":"US","coord":{"lon":-106.416679,"lat":34.427559}}
+{"_id":4058479,"name":"DeKalb County","country":"US","coord":{"lon":-85.783302,"lat":34.450089}}
+{"_id":4093194,"name":"Ten Broeck","country":"US","coord":{"lon":-85.986923,"lat":34.41787}}
+{"_id":5321860,"name":"Yavapai County","country":"US","coord":{"lon":-112.375717,"lat":34.508362}}
+{"_id":4585582,"name":"Lockhart Oil Field","country":"US","coord":{"lon":-80.534523,"lat":34.423489}}
+{"_id":4116433,"name":"Jefferson County","country":"US","coord":{"lon":-91.900139,"lat":34.233429}}
+{"_id":4127994,"name":"Red Bluff (historical)","country":"US","coord":{"lon":-92.150146,"lat":34.481209}}
+{"_id":4074736,"name":"Marshall County","country":"US","coord":{"lon":-86.333321,"lat":34.383419}}
+{"_id":4070512,"name":"Keel (historical)","country":"US","coord":{"lon":-86.307762,"lat":34.51675}}
+{"_id":4207132,"name":"Lumpkin County","country":"US","coord":{"lon":-84.016579,"lat":34.566761}}
+{"_id":4190542,"name":"Dahlonega","country":"US","coord":{"lon":-83.984909,"lat":34.532589}}
+{"_id":5470197,"name":"Guadalupe County","country":"US","coord":{"lon":-105.251122,"lat":35.12561}}
+{"_id":5322400,"name":"Adelanto","country":"US","coord":{"lon":-117.409218,"lat":34.582771}}
+{"_id":4574531,"name":"Chester County","country":"US","coord":{"lon":-81.133141,"lat":34.683472}}
+{"_id":4593538,"name":"Rossville","country":"US","coord":{"lon":-80.992577,"lat":34.603481}}
+{"_id":4482348,"name":"North Carolina","country":"US","coord":{"lon":-80.00032,"lat":35.50069}}
+{"_id":4452708,"name":"Anson County","country":"US","coord":{"lon":-80.099777,"lat":34.98349}}
+{"_id":4485528,"name":"Pinkston","country":"US","coord":{"lon":-80.078392,"lat":35.016258}}
+{"_id":5457180,"name":"Bernalillo County","country":"US","coord":{"lon":-106.667252,"lat":35.050049}}
+{"_id":5460986,"name":"Cedro","country":"US","coord":{"lon":-106.353638,"lat":35.02227}}
+{"_id":5474813,"name":"La Cuesta","country":"US","coord":{"lon":-106.506973,"lat":35.078381}}
+{"_id":4662168,"name":"Tennessee","country":"US","coord":{"lon":-86.250267,"lat":35.750351}}
+{"_id":4623574,"name":"Franklin County","country":"US","coord":{"lon":-86.083321,"lat":35.166752}}
+{"_id":4655513,"name":"Sal City","country":"US","coord":{"lon":-86.049149,"lat":35.05592}}
+{"_id":4627625,"name":"Hardin County","country":"US","coord":{"lon":-88.166702,"lat":35.183411}}
+{"_id":4627266,"name":"Hamburg","country":"US","coord":{"lon":-88.304207,"lat":35.09481}}
+{"_id":5519229,"name":"Collingsworth County","country":"US","coord":{"lon":-100.267059,"lat":34.966721}}
+{"_id":5516007,"name":"Aberdeen","country":"US","coord":{"lon":-100.149277,"lat":35.03783}}
+{"_id":5290307,"name":"Coconino County","country":"US","coord":{"lon":-112.134064,"lat":36.083321}}
+{"_id":5291014,"name":"Cosnino","country":"US","coord":{"lon":-111.474876,"lat":35.20557}}
+{"_id":4639514,"name":"Marion County","country":"US","coord":{"lon":-85.633301,"lat":35.150082}}
+{"_id":4634383,"name":"Ketner Mill","country":"US","coord":{"lon":-85.517189,"lat":35.13813}}
+{"_id":4539140,"name":"Hughes County","country":"US","coord":{"lon":-96.266953,"lat":35.06675}}
+{"_id":4556125,"name":"Yeager","country":"US","coord":{"lon":-96.339447,"lat":35.157581}}
+{"_id":4538431,"name":"Haskell County","country":"US","coord":{"lon":-95.133568,"lat":35.216759}}
+{"_id":4540465,"name":"Lafayette","country":"US","coord":{"lon":-95.103569,"lat":35.173988}}
+{"_id":5352950,"name":"Goldstone","country":"US","coord":{"lon":-116.913933,"lat":35.297192}}
+{"_id":4533690,"name":"Cleveland County","country":"US","coord":{"lon":-97.300308,"lat":35.200069}}
+{"_id":4541152,"name":"Little Axe","country":"US","coord":{"lon":-97.212532,"lat":35.232571}}
+{"_id":4490053,"name":"Sampson County","country":"US","coord":{"lon":-78.399719,"lat":34.966839}}
+{"_id":4489019,"name":"Rosin Hill","country":"US","coord":{"lon":-78.414169,"lat":35.2085}}
+{"_id":4626743,"name":"Grundy County","country":"US","coord":{"lon":-85.833313,"lat":35.26675}}
+{"_id":4635518,"name":"Lankford Town","country":"US","coord":{"lon":-85.73719,"lat":35.249519}}
+{"_id":4479988,"name":"Montgomery County","country":"US","coord":{"lon":-79.899773,"lat":35.35014}}
+{"_id":4465305,"name":"Emerald Shores","country":"US","coord":{"lon":-80.080612,"lat":35.25042}}
+{"_id":4537854,"name":"Grady County","country":"US","coord":{"lon":-97.900322,"lat":35.033401}}
+{"_id":4542876,"name":"Minco","country":"US","coord":{"lon":-97.944489,"lat":35.31284}}
+{"_id":5362932,"name":"Kern County","country":"US","coord":{"lon":-118.667587,"lat":35.29607}}
+{"_id":5405867,"name":"Venola","country":"US","coord":{"lon":-119.054268,"lat":35.310791}}
+{"_id":5293685,"name":"East Flagstaff","country":"US","coord":{"lon":-111.61322,"lat":35.211399}}
+{"_id":4470002,"name":"Harnett County","country":"US","coord":{"lon":-78.849739,"lat":35.383492}}
+{"_id":4453706,"name":"Barbecue","country":"US","coord":{"lon":-79.038643,"lat":35.335991}}
+{"_id":4621908,"name":"Fayette County","country":"US","coord":{"lon":-89.41674,"lat":35.200089}}
+{"_id":4669365,"name":"Yum Yum","country":"US","coord":{"lon":-89.36396,"lat":35.34536}}
+{"_id":5309082,"name":"Pine Tank","country":"US","coord":{"lon":-112.066002,"lat":35.241959}}
+{"_id":4116263,"name":"Jackson County","country":"US","coord":{"lon":-91.200127,"lat":35.600079}}
+{"_id":4121026,"name":"McFadden","country":"US","coord":{"lon":-91.092072,"lat":35.406471}}
+{"_id":5489818,"name":"San Miguel County","country":"US","coord":{"lon":-104.883881,"lat":35.483379}}
+{"_id":5474889,"name":"La Liendre","country":"US","coord":{"lon":-105.05056,"lat":35.422272}}
+{"_id":5397976,"name":"Spangler","country":"US","coord":{"lon":-117.451439,"lat":35.548851}}
+{"_id":5305206,"name":"Mohave County","country":"US","coord":{"lon":-113.767448,"lat":36.083321}}
+{"_id":4551046,"name":"Seminole County","country":"US","coord":{"lon":-96.600288,"lat":35.150082}}
+{"_id":4493238,"name":"Stanly County","country":"US","coord":{"lon":-80.249779,"lat":35.333481}}
+{"_id":4472818,"name":"Isenhour","country":"US","coord":{"lon":-80.156441,"lat":35.44986}}
+{"_id":5490135,"name":"Sandoval County","country":"US","coord":{"lon":-106.850594,"lat":35.650028}}
+{"_id":5460650,"name":"Casa Salazar","country":"US","coord":{"lon":-107.11615,"lat":35.483372}}
+{"_id":4614466,"name":"Coffee County","country":"US","coord":{"lon":-86.06665,"lat":35.48341}}
+{"_id":4604388,"name":"Baucom","country":"US","coord":{"lon":-86.222214,"lat":35.535069}}
+{"_id":4494189,"name":"Swain County","country":"US","coord":{"lon":-83.483223,"lat":35.466759}}
+{"_id":4492435,"name":"Solola Valley","country":"US","coord":{"lon":-83.500717,"lat":35.49704}}
+{"_id":4457102,"name":"Brickhaven","country":"US","coord":{"lon":-79.028908,"lat":35.574879}}
+{"_id":4099141,"name":"Airport Village","country":"US","coord":{"lon":-91.195129,"lat":35.637859}}
+{"_id":4667226,"name":"White County","country":"US","coord":{"lon":-85.466637,"lat":35.950062}}
+{"_id":4622946,"name":"Foot (historical)","country":"US","coord":{"lon":-85.318298,"lat":36.025059}}
+{"_id":4611490,"name":"Carroll County","country":"US","coord":{"lon":-88.466721,"lat":35.966728}}
+{"_id":4630114,"name":"Hollow Rock","country":"US","coord":{"lon":-88.273659,"lat":36.03812}}
+{"_id":5305191,"name":"Moenkopi","country":"US","coord":{"lon":-111.222359,"lat":36.111099}}
+{"_id":5296391,"name":"Grand Canyon","country":"US","coord":{"lon":-112.139343,"lat":36.054428}}
+{"_id":4542291,"name":"Mayes County","country":"US","coord":{"lon":-95.26667,"lat":36.299999}}
+{"_id":4542361,"name":"Mazie","country":"US","coord":{"lon":-95.363297,"lat":36.107601}}
+{"_id":4535845,"name":"Ellis County","country":"US","coord":{"lon":-99.767059,"lat":36.133381}}
+{"_id":4538320,"name":"Harmon","country":"US","coord":{"lon":-99.560387,"lat":36.14476}}
+{"_id":5403789,"name":"Tulare County","country":"US","coord":{"lon":-118.800926,"lat":36.266609}}
+{"_id":5331919,"name":"Burling (historical)","country":"US","coord":{"lon":-119.34317,"lat":36.183842}}
+{"_id":7315551,"name":"Matheny","country":"US","coord":{"lon":-119.351578,"lat":36.170658}}
+{"_id":4458740,"name":"Camden County","country":"US","coord":{"lon":-76.182991,"lat":36.366821}}
+{"_id":4483390,"name":"Old Trap","country":"US","coord":{"lon":-76.026871,"lat":36.240711}}
+{"_id":5525131,"name":"Lipscomb County","country":"US","coord":{"lon":-100.286201,"lat":36.252899}}
+{"_id":5516705,"name":"Barton Corners","country":"US","coord":{"lon":-100.458191,"lat":36.201981}}
+{"_id":4499127,"name":"Wilkes County","country":"US","coord":{"lon":-80.999802,"lat":36.216801}}
+{"_id":4499012,"name":"Wilbar","country":"US","coord":{"lon":-81.298149,"lat":36.244572}}
+{"_id":4459547,"name":"Caswell County","country":"US","coord":{"lon":-79.349739,"lat":36.400139}}
+{"_id":4478310,"name":"Matkins","country":"US","coord":{"lon":-79.518913,"lat":36.254581}}
+{"_id":4611599,"name":"Carter County","country":"US","coord":{"lon":-82.133179,"lat":36.30011}}
+{"_id":4604644,"name":"Bear Stand","country":"US","coord":{"lon":-82.088181,"lat":36.278728}}
+{"_id":5462567,"name":"Colfax County","country":"US","coord":{"lon":-105.126106,"lat":36.87558}}
+{"_id":5493903,"name":"Taylor Springs","country":"US","coord":{"lon":-104.49221,"lat":36.327251}}
+{"_id":5509151,"name":"Nevada","country":"US","coord":{"lon":-116.75119,"lat":39.25021}}
+{"_id":5501879,"name":"Clark County","country":"US","coord":{"lon":-114.876099,"lat":36.000259}}
+{"_id":5502229,"name":"Corn Creek (historical)","country":"US","coord":{"lon":-115.381683,"lat":36.420799}}
+{"_id":4661017,"name":"Sumner County","country":"US","coord":{"lon":-86.449989,"lat":36.499771}}
+{"_id":4629106,"name":"Hickory Grove","country":"US","coord":{"lon":-86.29277,"lat":36.38644}}
+{"_id":4475047,"name":"Lambs Corner","country":"US","coord":{"lon":-76.221878,"lat":36.379879}}
+{"_id":4497598,"name":"Warren County","country":"US","coord":{"lon":-78.099709,"lat":36.38348}}
+{"_id":4496605,"name":"Vaughan","country":"US","coord":{"lon":-78.003601,"lat":36.42654}}
+{"_id":4462764,"name":"Currituck County","country":"US","coord":{"lon":-75.937141,"lat":36.31266}}
+{"_id":4481967,"name":"New Providence","country":"US","coord":{"lon":-76.093536,"lat":36.413212}}
+{"_id":4537472,"name":"Garfield County","country":"US","coord":{"lon":-98.062843,"lat":36.187538}}
+{"_id":4540495,"name":"Lahoma","country":"US","coord":{"lon":-98.08979,"lat":36.387531}}
+{"_id":4111857,"name":"Fulton County","country":"US","coord":{"lon":-91.833481,"lat":36.36673}}
+{"_id":4125694,"name":"Peach (historical)","country":"US","coord":{"lon":-91.52375,"lat":36.477009}}
+{"_id":4105899,"name":"Clay County","country":"US","coord":{"lon":-90.383438,"lat":36.36673}}
+{"_id":4132639,"name":"Styra (historical)","country":"US","coord":{"lon":-90.305382,"lat":36.458389}}
+{"_id":4494476,"name":"Tar Corner","country":"US","coord":{"lon":-76.286049,"lat":36.4771}}
+{"_id":5342512,"name":"Delft Colony","country":"US","coord":{"lon":-119.445961,"lat":36.511902}}
+{"_id":4101244,"name":"Benton County","country":"US","coord":{"lon":-94.333542,"lat":36.333408}}
+{"_id":4119025,"name":"Line Store (historical)","country":"US","coord":{"lon":-94.024368,"lat":36.497849}}
+{"_id":5509519,"name":"Nye County","country":"US","coord":{"lon":-116.501167,"lat":38.00021}}
+{"_id":5501198,"name":"Camp Desert Rock","country":"US","coord":{"lon":-116.020027,"lat":36.627178}}
+{"_id":5515937,"name":"Texas County","country":"US","coord":{"lon":-101.517097,"lat":36.766689}}
+{"_id":5515766,"name":"Hough","country":"US","coord":{"lon":-101.577103,"lat":36.870861}}
+{"_id":5372259,"name":"Merced County","country":"US","coord":{"lon":-120.751579,"lat":37.166611}}
+{"_id":5393244,"name":"Santa Nella Village","country":"US","coord":{"lon":-121.016869,"lat":37.097721}}
+{"_id":4245592,"name":"New Liberty","country":"US","coord":{"lon":-88.447823,"lat":37.122002}}
+{"_id":5417618,"name":"Colorado","country":"US","coord":{"lon":-105.500832,"lat":39.000271}}
+{"_id":5428059,"name":"Las Animas County","country":"US","coord":{"lon":-104.001083,"lat":37.416679}}
+{"_id":5427336,"name":"Kim","country":"US","coord":{"lon":-103.352158,"lat":37.246689}}
+{"_id":5412453,"name":"Baca County","country":"US","coord":{"lon":-102.550468,"lat":37.333351}}
+{"_id":5431144,"name":"Midway","country":"US","coord":{"lon":-102.186012,"lat":37.149189}}
+{"_id":4273857,"name":"Kansas","country":"US","coord":{"lon":-98.500633,"lat":38.50029}}
+{"_id":4272662,"name":"Harper County","country":"US","coord":{"lon":-98.083672,"lat":37.20002}}
+{"_id":4270124,"name":"Crisfield","country":"US","coord":{"lon":-98.311462,"lat":37.172249}}
+{"_id":4280143,"name":"Sumner County","country":"US","coord":{"lon":-97.483658,"lat":37.23336}}
+{"_id":4267387,"name":"Adamsville","country":"US","coord":{"lon":-97.17643,"lat":37.173359}}
+{"_id":6254928,"name":"Virginia","country":"US","coord":{"lon":-77.446747,"lat":37.548119}}
+{"_id":4755865,"name":"Dickenson County","country":"US","coord":{"lon":-82.349869,"lat":37.133438}}
+{"_id":5392427,"name":"San Mateo County","country":"US","coord":{"lon":-122.351082,"lat":37.44994}}
+{"_id":5386938,"name":"Redwood Terrace","country":"US","coord":{"lon":-122.294968,"lat":37.314659}}
+{"_id":5425737,"name":"Huerfano County","country":"US","coord":{"lon":-104.950546,"lat":37.683338}}
+{"_id":5418756,"name":"Cuchara","country":"US","coord":{"lon":-105.100281,"lat":37.379181}}
+{"_id":5549030,"name":"Utah","country":"US","coord":{"lon":-111.75103,"lat":39.25024}}
+{"_id":5546337,"name":"San Juan County","country":"US","coord":{"lon":-109.501228,"lat":37.750549}}
+{"_id":5537013,"name":"Clay Hills Crossing","country":"US","coord":{"lon":-110.404846,"lat":37.294441}}
+{"_id":6254925,"name":"Kentucky","country":"US","coord":{"lon":-84.877617,"lat":38.20042}}
+{"_id":4303951,"name":"Perry County","country":"US","coord":{"lon":-83.199898,"lat":37.250648}}
+{"_id":7248920,"name":"Rock Fork","country":"US","coord":{"lon":-83.190666,"lat":37.355808}}
+{"_id":5509558,"name":"Oak Springs (historical)","country":"US","coord":{"lon":-116.057823,"lat":37.219398}}
+{"_id":5507189,"name":"Lincoln County","country":"US","coord":{"lon":-114.876122,"lat":38.00024}}
+{"_id":5514410,"name":"Viola (historical)","country":"US","coord":{"lon":-114.385536,"lat":37.2658}}
+{"_id":4763688,"name":"Henrico County","country":"US","coord":{"lon":-77.366371,"lat":37.550152}}
+{"_id":4754164,"name":"Cotman (historical)","country":"US","coord":{"lon":-77.301369,"lat":37.42598}}
+{"_id":4295247,"name":"Hopkins County","country":"US","coord":{"lon":-87.550003,"lat":37.333382}}
+{"_id":4311983,"name":"Vandetta","country":"US","coord":{"lon":-87.425278,"lat":37.451431}}
+{"_id":4302277,"name":"Nelson County","country":"US","coord":{"lon":-85.466629,"lat":37.80006}}
+{"_id":4295443,"name":"Howardstown","country":"US","coord":{"lon":-85.591911,"lat":37.572281}}
+{"_id":5322745,"name":"Alameda County","country":"US","coord":{"lon":-121.884399,"lat":37.59993}}
+{"_id":4398678,"name":"Missouri","country":"US","coord":{"lon":-92.500458,"lat":38.250309}}
+{"_id":4407295,"name":"Sainte Genevieve County","country":"US","coord":{"lon":-90.200119,"lat":37.883389}}
+{"_id":4399166,"name":"Mosher","country":"US","coord":{"lon":-90.076782,"lat":37.971161}}
+{"_id":5445733,"name":"Kearny County","country":"US","coord":{"lon":-101.317108,"lat":37.983349}}
+{"_id":5446607,"name":"Sutton","country":"US","coord":{"lon":-101.465446,"lat":37.905849}}
+{"_id":5503780,"name":"Esmeralda County","country":"US","coord":{"lon":-117.626198,"lat":37.75021}}
+{"_id":5501205,"name":"Camp Harding (historical)","country":"US","coord":{"lon":-117.487038,"lat":37.952991}}
+{"_id":4392394,"name":"Jefferson County","country":"US","coord":{"lon":-90.583458,"lat":38.26672}}
+{"_id":4397988,"name":"Melzo","country":"US","coord":{"lon":-90.569572,"lat":38.010052}}
+{"_id":5285334,"name":"Koen","country":"US","coord":{"lon":-102.346863,"lat":38.0714}}
+{"_id":4252955,"name":"White County","country":"US","coord":{"lon":-88.166702,"lat":38.083382}}
+{"_id":4234576,"name":"Brownsport (historical)","country":"US","coord":{"lon":-88.042526,"lat":38.05616}}
+{"_id":4267572,"name":"Anderson County","country":"US","coord":{"lon":-95.283592,"lat":38.20002}}
+{"_id":4281621,"name":"Westphalia","country":"US","coord":{"lon":-95.490257,"lat":38.181969}}
+{"_id":4826850,"name":"West Virginia","country":"US","coord":{"lon":-80.500092,"lat":38.500381}}
+{"_id":4810630,"name":"Kanawha County","country":"US","coord":{"lon":-81.566513,"lat":38.333431}}
+{"_id":4803404,"name":"Crown Hill","country":"US","coord":{"lon":-81.413727,"lat":38.2001}}
+{"_id":4376578,"name":"Benton County","country":"US","coord":{"lon":-93.300201,"lat":38.300018}}
+{"_id":5548429,"name":"Three Forks","country":"US","coord":{"lon":-110.49514,"lat":37.991379}}
+{"_id":5422448,"name":"Fremont County","country":"US","coord":{"lon":-105.400551,"lat":38.48333}}
+{"_id":5438691,"name":"Sikes","country":"US","coord":{"lon":-105.074707,"lat":38.258339}}
+{"_id":5424092,"name":"Gunnison County","country":"US","coord":{"lon":-107.067268,"lat":38.699989}}
+{"_id":5435240,"name":"Powderhorn","country":"US","coord":{"lon":-107.095879,"lat":38.276939}}
+{"_id":5446780,"name":"Wichita County","country":"US","coord":{"lon":-101.350441,"lat":38.46669}}
+{"_id":5445392,"name":"Finney County","country":"US","coord":{"lon":-100.667099,"lat":38.016689}}
+{"_id":5323622,"name":"Amador County","country":"US","coord":{"lon":-120.651039,"lat":38.449909}}
+{"_id":5333177,"name":"Camanche Village","country":"US","coord":{"lon":-120.973267,"lat":38.26992}}
+{"_id":5437350,"name":"Saguache County","country":"US","coord":{"lon":-106.251137,"lat":38.083328}}
+{"_id":5438194,"name":"Sedgewick (historical)","country":"US","coord":{"lon":-106.147797,"lat":38.279171}}
+{"_id":5389519,"name":"Sacramento County","country":"US","coord":{"lon":-121.317734,"lat":38.466579}}
+{"_id":5331154,"name":"Bruceville","country":"US","coord":{"lon":-121.417168,"lat":38.335751}}
+{"_id":5419932,"name":"Doyleville","country":"US","coord":{"lon":-106.609482,"lat":38.45166}}
+{"_id":4921868,"name":"Indiana","country":"US","coord":{"lon":-86.250267,"lat":40.00032}}
+{"_id":4257948,"name":"Gibson County","country":"US","coord":{"lon":-87.56752,"lat":38.35532}}
+{"_id":4257682,"name":"Francisco","country":"US","coord":{"lon":-87.445297,"lat":38.332272}}
+{"_id":4252607,"name":"Wayne County","country":"US","coord":{"lon":-88.41671,"lat":38.43338}}
+{"_id":4251347,"name":"Toms Prairie","country":"US","coord":{"lon":-88.258652,"lat":38.407829}}
+{"_id":4826636,"name":"Webster County","country":"US","coord":{"lon":-80.416473,"lat":38.516769}}
+{"_id":4799763,"name":"Bolair","country":"US","coord":{"lon":-80.44397,"lat":38.437611}}
+{"_id":5414591,"name":"Boone","country":"US","coord":{"lon":-104.256912,"lat":38.248611}}
+{"_id":4142224,"name":"Delaware","country":"US","coord":{"lon":-75.499924,"lat":39.000389}}
+{"_id":5441188,"name":"Teller County","country":"US","coord":{"lon":-105.167213,"lat":38.866661}}
+{"_id":5431129,"name":"Midland","country":"US","coord":{"lon":-105.161652,"lat":38.858318}}
+{"_id":4281087,"name":"Wabaunsee County","country":"US","coord":{"lon":-95.996101,"lat":39.129169}}
+{"_id":4277071,"name":"Paxico","country":"US","coord":{"lon":-96.166382,"lat":39.069439}}
+{"_id":4825733,"name":"Upshur County","country":"US","coord":{"lon":-80.250359,"lat":38.88343}}
+{"_id":4810850,"name":"Kesling Mill","country":"US","coord":{"lon":-80.142303,"lat":39.005379}}
+{"_id":4270937,"name":"Ellis County","country":"US","coord":{"lon":-99.317047,"lat":38.916679}}
+{"_id":4270936,"name":"Ellis","country":"US","coord":{"lon":-99.560669,"lat":38.938068}}
+{"_id":5372163,"name":"Mendocino County","country":"US","coord":{"lon":-123.417793,"lat":39.41655}}
+{"_id":5365089,"name":"Largo","country":"US","coord":{"lon":-123.129997,"lat":39.021561}}
+{"_id":5433959,"name":"Park County","country":"US","coord":{"lon":-105.767227,"lat":39.14999}}
+{"_id":5434851,"name":"Platte Springs","country":"US","coord":{"lon":-105.358612,"lat":39.063599}}
+{"_id":4361885,"name":"Maryland","country":"US","coord":{"lon":-76.749969,"lat":39.000389}}
+{"_id":5421941,"name":"Flagler","country":"US","coord":{"lon":-103.067162,"lat":39.293049}}
+{"_id":4392183,"name":"Jackson County","country":"US","coord":{"lon":-94.350227,"lat":39.01667}}
+{"_id":4405766,"name":"River Bend","country":"US","coord":{"lon":-94.394951,"lat":39.17889}}
+{"_id":5443572,"name":"West Burlington","country":"US","coord":{"lon":-102.309639,"lat":39.303329}}
+{"_id":5428203,"name":"Leavick (historical)","country":"US","coord":{"lon":-106.13752,"lat":39.194988}}
+{"_id":4514204,"name":"Highland County","country":"US","coord":{"lon":-83.616592,"lat":39.183399}}
+{"_id":4525666,"name":"Stringtown","country":"US","coord":{"lon":-83.488251,"lat":39.234791}}
+{"_id":4255843,"name":"Clay County","country":"US","coord":{"lon":-87.07724,"lat":39.416988}}
+{"_id":4255841,"name":"Clay City","country":"US","coord":{"lon":-87.112793,"lat":39.276711}}
+{"_id":5411026,"name":"Yuba County","country":"US","coord":{"lon":-121.40107,"lat":39.283218}}
+{"_id":5386002,"name":"Rancho Loma Rica","country":"US","coord":{"lon":-121.354134,"lat":39.308781}}
+{"_id":5506935,"name":"Lander County","country":"US","coord":{"lon":-116.876198,"lat":39.875198}}
+{"_id":5514709,"name":"Watertown (historical)","country":"US","coord":{"lon":-117.128418,"lat":39.341042}}
+{"_id":4815060,"name":"Mineral County","country":"US","coord":{"lon":-78.949753,"lat":39.400101}}
+{"_id":4807058,"name":"Gleason (historical)","country":"US","coord":{"lon":-79.217262,"lat":39.362881}}
+{"_id":4350461,"name":"Carroll County","country":"US","coord":{"lon":-77.016373,"lat":39.550098}}
+{"_id":4355837,"name":"Gaither","country":"US","coord":{"lon":-76.993027,"lat":39.361488}}
+{"_id":5703766,"name":"Eureka County","country":"US","coord":{"lon":-116.126183,"lat":40.000198}}
+{"_id":5445194,"name":"Colby","country":"US","coord":{"lon":-101.052383,"lat":39.39584}}
+{"_id":4259727,"name":"Johnson County","country":"US","coord":{"lon":-86.054993,"lat":39.48061}}
+{"_id":4255151,"name":"Bud","country":"US","coord":{"lon":-86.175819,"lat":39.446991}}
+{"_id":4514358,"name":"Hocking County","country":"US","coord":{"lon":-82.466537,"lat":39.516731}}
+{"_id":4511219,"name":"Ewing","country":"US","coord":{"lon":-82.433212,"lat":39.472569}}
+{"_id":4276786,"name":"Osborne County","country":"US","coord":{"lon":-98.783691,"lat":39.35001}}
+{"_id":4270472,"name":"Downs","country":"US","coord":{"lon":-98.542007,"lat":39.498619}}
+{"_id":4380138,"name":"Carroll County","country":"US","coord":{"lon":-93.516876,"lat":39.45002}}
+{"_id":4377999,"name":"Bosworth","country":"US","coord":{"lon":-93.334648,"lat":39.469742}}
+{"_id":4263408,"name":"Providence","country":"US","coord":{"lon":-86.176659,"lat":39.490879}}
+{"_id":5445268,"name":"Decatur County","country":"US","coord":{"lon":-100.467087,"lat":39.800011}}
+{"_id":5444964,"name":"Allison","country":"US","coord":{"lon":-100.264297,"lat":39.575001}}
+{"_id":5445815,"name":"Leoville","country":"US","coord":{"lon":-100.460983,"lat":39.581669}}
+{"_id":5184079,"name":"Chester County","country":"US","coord":{"lon":-75.874939,"lat":40.125381}}
+{"_id":4561484,"name":"Steelville","country":"US","coord":{"lon":-75.993561,"lat":39.904831}}
+{"_id":5574999,"name":"Boulder County","country":"US","coord":{"lon":-105.350548,"lat":40.083321}}
+{"_id":5416138,"name":"Caribou City","country":"US","coord":{"lon":-105.512779,"lat":39.98999}}
+{"_id":5101760,"name":"New Jersey","country":"US","coord":{"lon":-74.49987,"lat":40.167061}}
+{"_id":5073708,"name":"Nebraska","country":"US","coord":{"lon":-99.750671,"lat":41.500278}}
+{"_id":5694963,"name":"Dundy County","country":"US","coord":{"lon":-101.667122,"lat":40.16666}}
+{"_id":5843946,"name":"Max","country":"US","coord":{"lon":-101.402657,"lat":40.11388}}
+{"_id":5055521,"name":"Holt County","country":"US","coord":{"lon":-95.216919,"lat":40.099998}}
+{"_id":5055046,"name":"Fortescue","country":"US","coord":{"lon":-95.318314,"lat":40.052219}}
+{"_id":5436472,"name":"Rio Blanco County","country":"US","coord":{"lon":-108.200638,"lat":39.94997}}
+{"_id":5574298,"name":"Angora","country":"US","coord":{"lon":-108.575661,"lat":40.17664}}
+{"_id":4887163,"name":"Champaign County","country":"US","coord":{"lon":-88.20005,"lat":40.133369}}
+{"_id":4911041,"name":"Sellers","country":"US","coord":{"lon":-88.104759,"lat":40.18642}}
+{"_id":5443305,"name":"Washington County","country":"US","coord":{"lon":-103.2005,"lat":39.966648}}
+{"_id":5580914,"name":"Pinneo","country":"US","coord":{"lon":-103.438553,"lat":40.209419}}
+{"_id":5574267,"name":"Alvin","country":"US","coord":{"lon":-102.075737,"lat":40.30777}}
+{"_id":5056253,"name":"Mercer County","country":"US","coord":{"lon":-93.566887,"lat":40.433338}}
+{"_id":5056943,"name":"Princeton","country":"US","coord":{"lon":-93.580498,"lat":40.400841}}
+{"_id":5702984,"name":"Crescent Valley","country":"US","coord":{"lon":-116.576469,"lat":40.416031}}
+{"_id":5057186,"name":"Schuyler County","country":"US","coord":{"lon":-92.533524,"lat":40.466702}}
+{"_id":5056965,"name":"Queen City","country":"US","coord":{"lon":-92.567688,"lat":40.409199}}
+{"_id":4921670,"name":"Howard County","country":"US","coord":{"lon":-86.133598,"lat":40.486431}}
+{"_id":4928084,"name":"West Middleton","country":"US","coord":{"lon":-86.21611,"lat":40.43948}}
+{"_id":5783699,"name":"Tooele County","country":"US","coord":{"lon":-113.125259,"lat":40.375488}}
+{"_id":5578418,"name":"Jackson County","country":"US","coord":{"lon":-106.333923,"lat":40.666641}}
+{"_id":5580548,"name":"Old Homestead","country":"US","coord":{"lon":-106.143631,"lat":40.440262}}
+{"_id":5053940,"name":"Atchison County","country":"US","coord":{"lon":-95.400261,"lat":40.433331}}
+{"_id":5056033,"name":"London","country":"US","coord":{"lon":-95.234978,"lat":40.445}}
+{"_id":5069211,"name":"Gosper County","country":"US","coord":{"lon":-99.833733,"lat":40.53334}}
+{"_id":5066953,"name":"Devils Gap","country":"US","coord":{"lon":-99.87207,"lat":40.579449}}
+{"_id":5703673,"name":"Elko County","country":"US","coord":{"lon":-115.501167,"lat":41.000198}}
+{"_id":5707899,"name":"Rock House","country":"US","coord":{"lon":-115.410881,"lat":40.42215}}
+{"_id":5065828,"name":"Clay County","country":"US","coord":{"lon":-98.050331,"lat":40.53334}}
+{"_id":4892729,"name":"Ford County","country":"US","coord":{"lon":-88.25061,"lat":40.58337}}
+{"_id":4893446,"name":"Garber","country":"US","coord":{"lon":-88.381721,"lat":40.515869}}
+{"_id":4917010,"name":"Woodford County","country":"US","coord":{"lon":-89.233421,"lat":40.766701}}
+{"_id":4902065,"name":"Metamora","country":"US","coord":{"lon":-89.360641,"lat":40.790588}}
+{"_id":4862182,"name":"Iowa","country":"US","coord":{"lon":-93.500488,"lat":42.000271}}
+{"_id":5184546,"name":"Clearfield County","country":"US","coord":{"lon":-78.750031,"lat":41.12534}}
+{"_id":5189122,"name":"Fairview","country":"US","coord":{"lon":-78.231956,"lat":41.0345}}
+{"_id":5771875,"name":"Box Elder County","country":"US","coord":{"lon":-112.876373,"lat":41.500481}}
+{"_id":5776997,"name":"Lakeside","country":"US","coord":{"lon":-112.865532,"lat":41.222431}}
+{"_id":5102445,"name":"Passaic County","country":"US","coord":{"lon":-74.3657,"lat":41.066799}}
+{"_id":5106014,"name":"Wanaque","country":"US","coord":{"lon":-74.294037,"lat":41.038151}}
+{"_id":4867477,"name":"Mills County","country":"US","coord":{"lon":-95.616951,"lat":41.033329}}
+{"_id":4860019,"name":"Hastings","country":"US","coord":{"lon":-95.499161,"lat":41.022781}}
+{"_id":4860353,"name":"Henry County","country":"US","coord":{"lon":-91.550163,"lat":40.98336}}
+{"_id":4882211,"name":"Winfield","country":"US","coord":{"lon":-91.441269,"lat":41.123081}}
+{"_id":5784440,"name":"Weber County","country":"US","coord":{"lon":-111.751328,"lat":41.2505}}
+{"_id":5777451,"name":"Little Mountain","country":"US","coord":{"lon":-112.254662,"lat":41.244389}}
+{"_id":4866274,"name":"Marion County","country":"US","coord":{"lon":-93.100197,"lat":41.333328}}
+{"_id":5571369,"name":"Siskiyou County","country":"US","coord":{"lon":-122.517799,"lat":41.583199}}
+{"_id":7236207,"name":"Warmcastle Mobile Home Park","country":"US","coord":{"lon":-122.148331,"lat":41.21806}}
+{"_id":4923252,"name":"Marshall County","country":"US","coord":{"lon":-86.309731,"lat":41.343658}}
+{"_id":4923322,"name":"Maxinkuckee","country":"US","coord":{"lon":-86.381393,"lat":41.208382}}
+{"_id":5160041,"name":"Lagrange","country":"US","coord":{"lon":-82.119873,"lat":41.237282}}
+{"_id":4928215,"name":"Whitley County","country":"US","coord":{"lon":-85.488312,"lat":41.157269}}
+{"_id":4927309,"name":"Tri-Lakes","country":"US","coord":{"lon":-85.441917,"lat":41.24588}}
+{"_id":5072973,"name":"Merrick County","country":"US","coord":{"lon":-98.083672,"lat":41.150009}}
+{"_id":5074769,"name":"Palmer","country":"US","coord":{"lon":-98.257294,"lat":41.22224}}
+{"_id":5205310,"name":"Pecks Pond","country":"US","coord":{"lon":-75.092117,"lat":41.28315}}
+{"_id":5568120,"name":"Modoc County","country":"US","coord":{"lon":-120.734413,"lat":41.566559}}
+{"_id":5560368,"name":"Brooks Mill","country":"US","coord":{"lon":-120.310783,"lat":41.279339}}
+{"_id":4850583,"name":"Cass County","country":"US","coord":{"lon":-94.933601,"lat":41.333321}}
+{"_id":5843591,"name":"Wyoming","country":"US","coord":{"lon":-107.5009,"lat":43.00024}}
+{"_id":5840426,"name":"Sweetwater County","country":"US","coord":{"lon":-108.917343,"lat":41.66663}}
+{"_id":5838969,"name":"South Baxter","country":"US","coord":{"lon":-109.121788,"lat":41.368019}}
+{"_id":5816904,"name":"Albany County","country":"US","coord":{"lon":-105.700546,"lat":41.666641}}
+{"_id":5820898,"name":"Centennial","country":"US","coord":{"lon":-106.141678,"lat":41.298309}}
+{"_id":5070443,"name":"Howard County","country":"US","coord":{"lon":-98.517021,"lat":41.216679}}
+{"_id":5066227,"name":"Cotesfield","country":"US","coord":{"lon":-98.632584,"lat":41.357231}}
+{"_id":5706523,"name":"Morton (historical)","country":"US","coord":{"lon":-115.211723,"lat":41.569908}}
+{"_id":5073611,"name":"Nance County","country":"US","coord":{"lon":-98.000893,"lat":41.400009}}
+{"_id":5063781,"name":"Belgrade","country":"US","coord":{"lon":-98.06839,"lat":41.473068}}
+{"_id":4898878,"name":"LaSalle County","country":"US","coord":{"lon":-88.883408,"lat":41.266701}}
+{"_id":4914065,"name":"Triumph","country":"US","coord":{"lon":-89.022034,"lat":41.499481}}
+{"_id":5176872,"name":"Williams County","country":"US","coord":{"lon":-84.583282,"lat":41.550049}}
+{"_id":5161096,"name":"Lock Port","country":"US","coord":{"lon":-84.389954,"lat":41.54977}}
+{"_id":5697135,"name":"Logan County","country":"US","coord":{"lon":-100.483749,"lat":41.566662}}
+{"_id":5696208,"name":"Hoagland","country":"US","coord":{"lon":-100.371246,"lat":41.508331}}
+{"_id":5703133,"name":"Deep Creek","country":"US","coord":{"lon":-116.148697,"lat":41.567131}}
+{"_id":5830051,"name":"Laramie County","country":"US","coord":{"lon":-104.667191,"lat":41.349979}}
+{"_id":5832096,"name":"Meriden","country":"US","coord":{"lon":-104.31913,"lat":41.543591}}
+{"_id":5703178,"name":"Delano (historical)","country":"US","coord":{"lon":-114.273628,"lat":41.667702}}
+{"_id":5566285,"name":"Khoonkhwuttunne (historical)","country":"US","coord":{"lon":-124.20314,"lat":41.948448}}
+{"_id":5585000,"name":"Bear Lake County","country":"US","coord":{"lon":-111.313538,"lat":42.312431}}
+{"_id":5585010,"name":"Bear Lake Sands","country":"US","coord":{"lon":-111.253532,"lat":42.051601}}
+{"_id":4888671,"name":"Cook County","country":"US","coord":{"lon":-87.85006,"lat":41.833359}}
+{"_id":4896555,"name":"Howard District","country":"US","coord":{"lon":-87.66922,"lat":42.020859}}
+{"_id":4884951,"name":"Birchwood","country":"US","coord":{"lon":-87.665337,"lat":42.016701}}
+{"_id":4997389,"name":"Jackson County","country":"US","coord":{"lon":-84.416618,"lat":42.250591}}
+{"_id":4996543,"name":"Horton","country":"US","coord":{"lon":-84.517181,"lat":42.150318}}
+{"_id":5114810,"name":"Delaware County","country":"US","coord":{"lon":-74.96627,"lat":42.200089}}
+{"_id":5139656,"name":"Steuben County","country":"US","coord":{"lon":-77.333038,"lat":42.266739}}
+{"_id":4864924,"name":"Linn County","country":"US","coord":{"lon":-91.600182,"lat":42.066662}}
+{"_id":4852165,"name":"Coggon","country":"US","coord":{"lon":-91.530441,"lat":42.280819}}
+{"_id":5835308,"name":"Platte County","country":"US","coord":{"lon":-104.967194,"lat":42.133301}}
+{"_id":5603018,"name":"Owyhee County","country":"US","coord":{"lon":-116.061768,"lat":42.55962}}
+{"_id":5820552,"name":"Carbon County","country":"US","coord":{"lon":-106.833931,"lat":41.66663}}
+{"_id":5838261,"name":"Shirley (historical)","country":"US","coord":{"lon":-106.481972,"lat":42.18885}}
+{"_id":4916845,"name":"Winnebago County","country":"US","coord":{"lon":-89.183441,"lat":42.350021}}
+{"_id":4905572,"name":"Pecatonica","country":"US","coord":{"lon":-89.359283,"lat":42.313911}}
+{"_id":5137368,"name":"Schuyler County","country":"US","coord":{"lon":-76.883011,"lat":42.41674}}
+{"_id":5141775,"name":"Tyrone","country":"US","coord":{"lon":-77.058296,"lat":42.408131}}
+{"_id":5106997,"name":"Allegany County","country":"US","coord":{"lon":-78.033058,"lat":42.250622}}
+{"_id":5121382,"name":"Houghton","country":"US","coord":{"lon":-78.157227,"lat":42.423401}}
+{"_id":4898998,"name":"Lake County","country":"US","coord":{"lon":-88.000633,"lat":42.333359}}
+{"_id":4900541,"name":"Lotus Woods","country":"US","coord":{"lon":-88.173141,"lat":42.421959}}
+{"_id":6254926,"name":"Massachusetts","country":"US","coord":{"lon":-71.108322,"lat":42.36565}}
+{"_id":5136495,"name":"Schoharie County","country":"US","coord":{"lon":-74.466248,"lat":42.566738}}
+{"_id":4873899,"name":"Sac County","country":"US","coord":{"lon":-95.116943,"lat":42.38332}}
+{"_id":4875666,"name":"Schaller","country":"US","coord":{"lon":-95.293053,"lat":42.499699}}
+{"_id":5610815,"name":"Twin Falls County","country":"US","coord":{"lon":-114.644493,"lat":42.35046}}
+{"_id":5605582,"name":"Rock Creek","country":"US","coord":{"lon":-114.305588,"lat":42.43214}}
+{"_id":5113366,"name":"Columbia County","country":"US","coord":{"lon":-73.649559,"lat":42.250641}}
+{"_id":5128474,"name":"New Britain (historical)","country":"US","coord":{"lon":-73.48983,"lat":42.4548}}
+{"_id":5821791,"name":"Converse County","country":"US","coord":{"lon":-105.533882,"lat":42.966629}}
+{"_id":5824768,"name":"Esterbrook","country":"US","coord":{"lon":-105.360817,"lat":42.41164}}
+{"_id":4930215,"name":"Beechwood Estates","country":"US","coord":{"lon":-73.111214,"lat":42.475639}}
+{"_id":5744337,"name":"Oregon","country":"US","coord":{"lon":-120.501389,"lat":44.00013}}
+{"_id":5279468,"name":"Wisconsin","country":"US","coord":{"lon":-90.000412,"lat":44.50024}}
+{"_id":5259061,"name":"Lafayette County","country":"US","coord":{"lon":-90.133461,"lat":42.666672}}
+{"_id":5251010,"name":"Dunbarton","country":"US","coord":{"lon":-90.133179,"lat":42.561668}}
+{"_id":5133098,"name":"Pulteney","country":"US","coord":{"lon":-77.167198,"lat":42.52507}}
+{"_id":4871708,"name":"Plymouth County","country":"US","coord":{"lon":-96.233643,"lat":42.733318}}
+{"_id":4863535,"name":"Kingsley","country":"US","coord":{"lon":-95.967522,"lat":42.588322}}
+{"_id":5840177,"name":"Sublette County","country":"US","coord":{"lon":-109.867371,"lat":42.69994}}
+{"_id":5819656,"name":"Bronx","country":"US","coord":{"lon":-110.115723,"lat":42.992722}}
+{"_id":5243051,"name":"Windham County","country":"US","coord":{"lon":-72.732872,"lat":42.98341}}
+{"_id":5242810,"name":"Westminster","country":"US","coord":{"lon":-72.458702,"lat":43.06786}}
+{"_id":5833224,"name":"Natrona County","country":"US","coord":{"lon":-106.783943,"lat":42.966629}}
+{"_id":5817269,"name":"Antelope Hills","country":"US","coord":{"lon":-106.324188,"lat":43.081631}}
+{"_id":5008112,"name":"Saint Clair County","country":"US","coord":{"lon":-82.666588,"lat":42.833359}}
+{"_id":5769223,"name":"South Dakota","country":"US","coord":{"lon":-100.250687,"lat":44.500259}}
+{"_id":5764690,"name":"Fall River County","country":"US","coord":{"lon":-103.550468,"lat":43.26664}}
+{"_id":5765513,"name":"Heppner","country":"US","coord":{"lon":-103.549919,"lat":43.246922}}
+{"_id":5003136,"name":"Muskegon County","country":"US","coord":{"lon":-86.133392,"lat":43.300018}}
+{"_id":7121451,"name":"Morland Corner","country":"US","coord":{"lon":-85.987778,"lat":43.235279}}
+{"_id":5012748,"name":"Tuscola County","country":"US","coord":{"lon":-83.449951,"lat":43.46669}}
+{"_id":5002100,"name":"Millington","country":"US","coord":{"lon":-83.529678,"lat":43.28141}}
+{"_id":5119847,"name":"Hamilton County","country":"US","coord":{"lon":-74.50016,"lat":43.666729}}
+{"_id":5141978,"name":"Upper Benson","country":"US","coord":{"lon":-74.33625,"lat":43.249241}}
+{"_id":5129832,"name":"Oneida County","country":"US","coord":{"lon":-75.466293,"lat":43.200069}}
+{"_id":5115844,"name":"East Floyd","country":"US","coord":{"lon":-75.26767,"lat":43.273129}}
+{"_id":5825643,"name":"Fremont County","country":"US","coord":{"lon":-108.667343,"lat":42.91663}}
+{"_id":5838312,"name":"Shoshoni","country":"US","coord":{"lon":-108.110367,"lat":43.23579}}
+{"_id":4861232,"name":"Howard County","country":"US","coord":{"lon":-92.316841,"lat":43.349972}}
+{"_id":5249193,"name":"Columbia County","country":"US","coord":{"lon":-89.33345,"lat":43.466648}}
+{"_id":5260694,"name":"Lodi","country":"US","coord":{"lon":-89.526512,"lat":43.313881}}
+{"_id":4865744,"name":"Lyon County","country":"US","coord":{"lon":-96.250862,"lat":43.383308}}
+{"_id":4855139,"name":"Edna","country":"US","coord":{"lon":-96.094467,"lat":43.384972}}
+{"_id":4870217,"name":"Osceola County","country":"US","coord":{"lon":-95.633621,"lat":43.383301}}
+{"_id":4859875,"name":"Harris","country":"US","coord":{"lon":-95.434174,"lat":43.44524}}
+{"_id":5007996,"name":"Saginaw County","country":"US","coord":{"lon":-84.03331,"lat":43.333359}}
+{"_id":7249577,"name":"Kris Kay Mobile Home Park","country":"US","coord":{"lon":-84.133331,"lat":43.400558}}
+{"_id":4853059,"name":"Cresco","country":"US","coord":{"lon":-92.114052,"lat":43.381359}}
+{"_id":5609855,"name":"Teton County","country":"US","coord":{"lon":-111.37606,"lat":43.91658}}
+{"_id":5609907,"name":"The String","country":"US","coord":{"lon":-111.088547,"lat":43.584641}}
+{"_id":5226849,"name":"Charles Mix County","country":"US","coord":{"lon":-98.503143,"lat":43.191662}}
+{"_id":5230474,"name":"Platte Colony","country":"US","coord":{"lon":-99.125931,"lat":43.469719}}
+{"_id":5090174,"name":"New Hampshire","country":"US","coord":{"lon":-71.499802,"lat":43.667019}}
+{"_id":5765964,"name":"Jackson County","country":"US","coord":{"lon":-101.675423,"lat":43.686111}}
+{"_id":5766696,"name":"Long Valley","country":"US","coord":{"lon":-101.494873,"lat":43.461658}}
+{"_id":5229494,"name":"Lyman County","country":"US","coord":{"lon":-99.875389,"lat":43.933319}}
+{"_id":5228733,"name":"Iona","country":"US","coord":{"lon":-99.42482,"lat":43.54306}}
+{"_id":5084247,"name":"Carroll County","country":"US","coord":{"lon":-71.216179,"lat":43.866741}}
+{"_id":5092952,"name":"South Wolfeboro","country":"US","coord":{"lon":-71.177292,"lat":43.56147}}
+{"_id":5767033,"name":"Mellette County","country":"US","coord":{"lon":-100.75042,"lat":43.558331}}
+{"_id":5763457,"name":"Cedar Butte","country":"US","coord":{"lon":-101.018478,"lat":43.576939}}
+{"_id":5828957,"name":"Johnson County","country":"US","coord":{"lon":-106.567261,"lat":44.03331}}
+{"_id":5830426,"name":"Linstead Place","country":"US","coord":{"lon":-106.52282,"lat":43.58247}}
+{"_id":5820441,"name":"Campbell County","country":"US","coord":{"lon":-105.55056,"lat":44.250542}}
+{"_id":5840669,"name":"Teckla","country":"US","coord":{"lon":-105.349983,"lat":43.5583}}
+{"_id":5043502,"name":"Rock County","country":"US","coord":{"lon":-96.100304,"lat":43.66663}}
+{"_id":5016681,"name":"Ash Creek","country":"US","coord":{"lon":-96.194199,"lat":43.5383}}
+{"_id":4971068,"name":"Maine","country":"US","coord":{"lon":-69.249771,"lat":45.50032}}
+{"_id":4983621,"name":"York County","country":"US","coord":{"lon":-70.682831,"lat":43.466751}}
+{"_id":4977565,"name":"Salmon Falls","country":"US","coord":{"lon":-70.553673,"lat":43.596191}}
+{"_id":5039323,"name":"Nobles County","country":"US","coord":{"lon":-95.76696,"lat":43.66663}}
+{"_id":5043891,"name":"Round Lake","country":"US","coord":{"lon":-95.468338,"lat":43.54052}}
+{"_id":5036797,"name":"Martin County","country":"US","coord":{"lon":-94.550247,"lat":43.666618}}
+{"_id":5024967,"name":"East Chain","country":"US","coord":{"lon":-94.36525,"lat":43.558842}}
+{"_id":5026478,"name":"Fillmore County","country":"US","coord":{"lon":-92.100159,"lat":43.66663}}
+{"_id":5020993,"name":"Cherry Grove","country":"US","coord":{"lon":-92.28878,"lat":43.58746}}
+{"_id":4996859,"name":"Huron County","country":"US","coord":{"lon":-83.033279,"lat":43.86668}}
+{"_id":5006232,"name":"Port Hope","country":"US","coord":{"lon":-82.712708,"lat":43.940842}}
+{"_id":5040211,"name":"Olmsted County","country":"US","coord":{"lon":-92.45018,"lat":44.000519}}
+{"_id":5020988,"name":"Chester","country":"US","coord":{"lon":-92.345169,"lat":44.006908}}
+{"_id":5124290,"name":"Lewis County","country":"US","coord":{"lon":-75.482964,"lat":43.800072}}
+{"_id":5129017,"name":"North Croghan Crossing","country":"US","coord":{"lon":-75.496857,"lat":44.03479}}
+{"_id":5767840,"name":"Pennington County","country":"US","coord":{"lon":-102.76712,"lat":43.983318}}
+{"_id":5770431,"name":"Wildwood Addition","country":"US","coord":{"lon":-103.274902,"lat":44.035271}}
+{"_id":5048696,"name":"Steele County","country":"US","coord":{"lon":-93.133537,"lat":44.033298}}
+{"_id":5037298,"name":"Meriden","country":"US","coord":{"lon":-93.386879,"lat":44.074131}}
+{"_id":5051458,"name":"Viola","country":"US","coord":{"lon":-92.268219,"lat":44.063301}}
+{"_id":5765294,"name":"Haakon County","country":"US","coord":{"lon":-101.583763,"lat":44.28054}}
+{"_id":5767558,"name":"Nowlin","country":"US","coord":{"lon":-101.302643,"lat":44.049709}}
+{"_id":5239504,"name":"Orange County","country":"US","coord":{"lon":-72.449539,"lat":44.000622}}
+{"_id":5235663,"name":"East Brookfield","country":"US","coord":{"lon":-72.571487,"lat":44.027561}}
+{"_id":5763011,"name":"Box Elder","country":"US","coord":{"lon":-103.06823,"lat":44.112492}}
+{"_id":4968996,"name":"Knox County","country":"US","coord":{"lon":-69.332817,"lat":43.850079}}
+{"_id":4979291,"name":"South Warren","country":"US","coord":{"lon":-69.222816,"lat":44.075642}}
+{"_id":5770156,"name":"Wasta","country":"US","coord":{"lon":-102.445717,"lat":44.0686}}
+{"_id":5590383,"name":"Custer County","country":"US","coord":{"lon":-114.221741,"lat":44.875198}}
+{"_id":5610350,"name":"Torreys","country":"US","coord":{"lon":-114.602287,"lat":44.253529}}
+{"_id":5842707,"name":"Weston County","country":"US","coord":{"lon":-104.567177,"lat":43.849979}}
+{"_id":5819841,"name":"Buckhorn","country":"US","coord":{"lon":-104.095772,"lat":44.149429}}
+{"_id":5247444,"name":"Calumet County","country":"US","coord":{"lon":-88.200104,"lat":44.083321}}
+{"_id":5835322,"name":"Pleasantdale","country":"US","coord":{"lon":-105.719452,"lat":44.076092}}
+{"_id":5228654,"name":"Hughes County","country":"US","coord":{"lon":-99.983727,"lat":44.416649}}
+{"_id":5762369,"name":"Alto","country":"US","coord":{"lon":-100.12735,"lat":44.329979}}
+{"_id":5841818,"name":"Upton","country":"US","coord":{"lon":-104.628021,"lat":44.099701}}
+{"_id":5818658,"name":"Big Horn County","country":"US","coord":{"lon":-108.083992,"lat":44.533291}}
+{"_id":5837342,"name":"Sales Place","country":"US","coord":{"lon":-108.536232,"lat":44.189949}}
+{"_id":5838557,"name":"Skull Creek","country":"US","coord":{"lon":-104.367172,"lat":44.10915}}
+{"_id":5278147,"name":"Waushara County","country":"US","coord":{"lon":-89.250671,"lat":44.116638}}
+{"_id":5247014,"name":"Brushville","country":"US","coord":{"lon":-88.995949,"lat":44.169979}}
+{"_id":5588908,"name":"Clark County","country":"US","coord":{"lon":-112.709167,"lat":44.500191}}
+{"_id":5591649,"name":"Dubois","country":"US","coord":{"lon":-112.23082,"lat":44.1763}}
+{"_id":4997201,"name":"Iosco County","country":"US","coord":{"lon":-83.633308,"lat":44.333351}}
+{"_id":4984533,"name":"Au Sable","country":"US","coord":{"lon":-83.332191,"lat":44.410851}}
+{"_id":5234861,"name":"Chittenden County","country":"US","coord":{"lon":-73.049568,"lat":44.45005}}
+{"_id":5237056,"name":"Hinesburg","country":"US","coord":{"lon":-73.11068,"lat":44.32922}}
+{"_id":5228693,"name":"Hyde County","country":"US","coord":{"lon":-99.461502,"lat":44.54998}}
+{"_id":5229524,"name":"Macs Corner","country":"US","coord":{"lon":-99.441498,"lat":44.25193}}
+{"_id":5840786,"name":"Teton County","country":"US","coord":{"lon":-110.584099,"lat":43.916611}}
+{"_id":5842684,"name":"West Thumb","country":"US","coord":{"lon":-110.575478,"lat":44.415501}}
+{"_id":5819881,"name":"Buffalo","country":"US","coord":{"lon":-106.698936,"lat":44.348309}}
+{"_id":5043007,"name":"Rice County","country":"US","coord":{"lon":-93.333549,"lat":44.34996}}
+{"_id":5039016,"name":"Nerstrand","country":"US","coord":{"lon":-93.067993,"lat":44.341911}}
+{"_id":5840981,"name":"Three River Junction","country":"US","coord":{"lon":-110.89299,"lat":44.289101}}
+{"_id":5094647,"name":"Whitefield","country":"US","coord":{"lon":-71.610077,"lat":44.373119}}
+{"_id":5114920,"name":"Derrick","country":"US","coord":{"lon":-74.479607,"lat":44.36673}}
+{"_id":5226536,"name":"Brookings County","country":"US","coord":{"lon":-96.817001,"lat":44.3083}}
+{"_id":5232895,"name":"White","country":"US","coord":{"lon":-96.649773,"lat":44.434689}}
+{"_id":5767000,"name":"Meade County","country":"US","coord":{"lon":-102.625999,"lat":44.500542}}
+{"_id":5769489,"name":"Sturgis","country":"US","coord":{"lon":-103.509079,"lat":44.40971}}
+{"_id":5034652,"name":"Lincoln County","country":"US","coord":{"lon":-96.266991,"lat":44.41663}}
+{"_id":5016539,"name":"Arco","country":"US","coord":{"lon":-96.183647,"lat":44.383579}}
+{"_id":5042847,"name":"Redwood County","country":"US","coord":{"lon":-95.233612,"lat":44.416618}}
+{"_id":5037589,"name":"Milroy","country":"US","coord":{"lon":-95.553337,"lat":44.417728}}
+{"_id":5834587,"name":"Park County","country":"US","coord":{"lon":-109.667397,"lat":44.416611}}
+{"_id":5821593,"name":"Cody","country":"US","coord":{"lon":-109.056534,"lat":44.52634}}
+{"_id":5611156,"name":"Valley County","country":"US","coord":{"lon":-116.126244,"lat":45.12767}}
+{"_id":5266044,"name":"Outagamie County","country":"US","coord":{"lon":-88.466766,"lat":44.416649}}
+{"_id":5272776,"name":"Seymour","country":"US","coord":{"lon":-88.330383,"lat":44.514992}}
+{"_id":5052165,"name":"Webster","country":"US","coord":{"lon":-93.352722,"lat":44.52969}}
+{"_id":5129826,"name":"Onchiota","country":"US","coord":{"lon":-74.123489,"lat":44.494221}}
+{"_id":5047260,"name":"Sibley County","country":"US","coord":{"lon":-94.200249,"lat":44.566631}}
+{"_id":5027765,"name":"Gaylord","country":"US","coord":{"lon":-94.220528,"lat":44.55302}}
+{"_id":5829855,"name":"Lake","country":"US","coord":{"lon":-110.396591,"lat":44.55827}}
+{"_id":5234041,"name":"Bowman Corners","country":"US","coord":{"lon":-73.057083,"lat":44.573662}}
+{"_id":5239520,"name":"Orleans County","country":"US","coord":{"lon":-72.23288,"lat":44.816711}}
+{"_id":5242022,"name":"Tolman Corner","country":"US","coord":{"lon":-72.30677,"lat":44.567551}}
+{"_id":5089546,"name":"Milan","country":"US","coord":{"lon":-71.185081,"lat":44.573391}}
+{"_id":4964821,"name":"Franklin County","country":"US","coord":{"lon":-70.449509,"lat":44.900059}}
+{"_id":4980356,"name":"Tainter Corner","country":"US","coord":{"lon":-70.365341,"lat":44.587559}}
+{"_id":5036131,"name":"Lyon County","country":"US","coord":{"lon":-95.850304,"lat":44.41663}}
+{"_id":5049737,"name":"Taunton","country":"US","coord":{"lon":-96.065872,"lat":44.593571}}
+{"_id":5270199,"name":"Saint Croix County","country":"US","coord":{"lon":-92.433533,"lat":45.049969}}
+{"_id":5269165,"name":"Roberts","country":"US","coord":{"lon":-92.55603,"lat":44.98386}}
+{"_id":5764683,"name":"Faith","country":"US","coord":{"lon":-102.035988,"lat":45.023041}}
+{"_id":5266780,"name":"Phlox","country":"US","coord":{"lon":-89.014282,"lat":45.051079}}
+{"_id":5021038,"name":"Chippewa County","country":"US","coord":{"lon":-95.583641,"lat":45.033291}}
+{"_id":5037461,"name":"Milan","country":"US","coord":{"lon":-95.913368,"lat":45.10857}}
+{"_id":5719297,"name":"Clackamas County","country":"US","coord":{"lon":-122.167862,"lat":45.249561}}
+{"_id":5718552,"name":"Cedardale","country":"US","coord":{"lon":-122.494812,"lat":45.159012}}
+{"_id":5653656,"name":"Gallatin County","country":"US","coord":{"lon":-111.20079,"lat":45.666599}}
+{"_id":5640165,"name":"Big Sky Mobile Home Court","country":"US","coord":{"lon":-111.331352,"lat":45.266041}}
+{"_id":5763234,"name":"Butte County","country":"US","coord":{"lon":-103.550468,"lat":44.88332}}
+{"_id":5765694,"name":"Hoover","country":"US","coord":{"lon":-103.26712,"lat":45.112492}}
+{"_id":4988577,"name":"Charlevoix County","country":"US","coord":{"lon":-85.00061,"lat":45.216679}}
+{"_id":4991613,"name":"East Jordan","country":"US","coord":{"lon":-85.124229,"lat":45.158058}}
+{"_id":5037200,"name":"Meeker County","country":"US","coord":{"lon":-94.516937,"lat":45.133301}}
+{"_id":5053485,"name":"Wright County","country":"US","coord":{"lon":-93.950249,"lat":45.1833}}
+{"_id":5643864,"name":"Carter County","country":"US","coord":{"lon":-104.550507,"lat":45.46666}}
+{"_id":5641719,"name":"Boyes","country":"US","coord":{"lon":-105.03109,"lat":45.26804}}
+{"_id":5227240,"name":"Day County","country":"US","coord":{"lon":-97.583702,"lat":45.31662}}
+{"_id":5232764,"name":"Webster","country":"US","coord":{"lon":-97.520088,"lat":45.33218}}
+{"_id":4975418,"name":"Piscataquis County","country":"US","coord":{"lon":-69.2995,"lat":45.800041}}
+{"_id":4974546,"name":"Packard Landing","country":"US","coord":{"lon":-69.333656,"lat":45.296719}}
+{"_id":5664295,"name":"Madison County","country":"US","coord":{"lon":-111.867477,"lat":45.28326}}
+{"_id":5636763,"name":"Alder","country":"US","coord":{"lon":-112.107208,"lat":45.323811}}
+{"_id":5016452,"name":"Anoka County","country":"US","coord":{"lon":-93.250778,"lat":45.250519}}
+{"_id":5039857,"name":"Oak Grove","country":"US","coord":{"lon":-93.326897,"lat":45.340801}}
+{"_id":4956470,"name":"Adams","country":"US","coord":{"lon":-68.900589,"lat":45.327549}}
+{"_id":5765341,"name":"Harding County","country":"US","coord":{"lon":-103.501022,"lat":45.583328}}
+{"_id":5768336,"name":"Redig","country":"US","coord":{"lon":-103.548248,"lat":45.271099}}
+{"_id":5049191,"name":"Sunburg","country":"US","coord":{"lon":-95.238358,"lat":45.34774}}
+{"_id":5230872,"name":"Roberts County","country":"US","coord":{"lon":-96.983688,"lat":45.516628}}
+{"_id":5231311,"name":"Schmidt Landing","country":"US","coord":{"lon":-96.56089,"lat":45.379688}}
+{"_id":4986691,"name":"Boulder Park","country":"US","coord":{"lon":-85.279243,"lat":45.3139}}
+{"_id":5268067,"name":"Price County","country":"US","coord":{"lon":-90.350151,"lat":45.683289}}
+{"_id":5265566,"name":"Ogema","country":"US","coord":{"lon":-90.298203,"lat":45.443581}}
+{"_id":5018364,"name":"Big Stone County","country":"US","coord":{"lon":-96.45034,"lat":45.39996}}
+{"_id":5021606,"name":"Clinton","country":"US","coord":{"lon":-96.43367,"lat":45.460239}}
+{"_id":5267654,"name":"Polk County","country":"US","coord":{"lon":-92.416862,"lat":45.449959}}
+{"_id":5262308,"name":"McKinley","country":"US","coord":{"lon":-92.176582,"lat":45.571339}}
+{"_id":5741531,"name":"Morrow County","country":"US","coord":{"lon":-119.551132,"lat":45.499569}}
+{"_id":5736352,"name":"Lena","country":"US","coord":{"lon":-119.28196,"lat":45.399841}}
+{"_id":5674707,"name":"Rosebud County","country":"US","coord":{"lon":-106.583923,"lat":46.333328}}
+{"_id":5640480,"name":"Birney Day School","country":"US","coord":{"lon":-106.465309,"lat":45.4161}}
+{"_id":5687489,"name":"Yellowstone County","country":"US","coord":{"lon":-108.300682,"lat":45.916618}}
+{"_id":5678757,"name":"Soda Springs","country":"US","coord":{"lon":-108.272346,"lat":45.56551}}
+{"_id":5031493,"name":"Isanti County","country":"US","coord":{"lon":-93.300232,"lat":45.549961}}
+{"_id":5018703,"name":"Blomford","country":"US","coord":{"lon":-93.142448,"lat":45.50024}}
+{"_id":5048538,"name":"Stanley","country":"US","coord":{"lon":-93.152718,"lat":45.550522}}
+{"_id":5048685,"name":"Stearns County","country":"US","coord":{"lon":-94.550278,"lat":45.549961}}
+{"_id":5026317,"name":"Farming","country":"US","coord":{"lon":-94.598061,"lat":45.51524}}
+{"_id":5017218,"name":"Barry","country":"US","coord":{"lon":-96.559227,"lat":45.558022}}
+{"_id":5767864,"name":"Perkins County","country":"US","coord":{"lon":-102.458771,"lat":45.516651}}
+{"_id":5767002,"name":"Meadow","country":"US","coord":{"lon":-102.21627,"lat":45.529148}}
+{"_id":5596467,"name":"Idaho County","country":"US","coord":{"lon":-114.626213,"lat":45.958248}}
+{"_id":5009187,"name":"Schoolcraft County","country":"US","coord":{"lon":-86.20015,"lat":46.21664}}
+{"_id":5012103,"name":"Thompson","country":"US","coord":{"lon":-86.330421,"lat":45.904968}}
+{"_id":5048759,"name":"Stevens County","country":"US","coord":{"lon":-96.000893,"lat":45.566631}}
+{"_id":5016042,"name":"Alberta","country":"US","coord":{"lon":-96.047546,"lat":45.573299}}
+{"_id":5687646,"name":"Adams County","country":"US","coord":{"lon":-102.525436,"lat":46.055561}}
+{"_id":5689563,"name":"Haynes","country":"US","coord":{"lon":-102.470993,"lat":45.974171}}
+{"_id":5061114,"name":"Richland County","country":"US","coord":{"lon":-96.91703,"lat":46.288849}}
+{"_id":5062050,"name":"Stiles","country":"US","coord":{"lon":-97.052589,"lat":46.075241}}
+{"_id":5599665,"name":"Lowell","country":"US","coord":{"lon":-115.595688,"lat":46.14407}}
+{"_id":5061439,"name":"Sargent County","country":"US","coord":{"lon":-97.625366,"lat":46.09996}}
+{"_id":5061067,"name":"Ransom City (historical)","country":"US","coord":{"lon":-97.385368,"lat":46.095242}}
+{"_id":5673204,"name":"Ravalli County","country":"US","coord":{"lon":-114.134262,"lat":46.133251}}
+{"_id":5655069,"name":"Grantsdale","country":"US","coord":{"lon":-114.141762,"lat":46.203529}}
+{"_id":5041542,"name":"Pine County","country":"US","coord":{"lon":-92.250748,"lat":46.083279}}
+{"_id":5021678,"name":"Cloverton","country":"US","coord":{"lon":-92.319641,"lat":46.167999}}
+{"_id":5038318,"name":"Morrison County","country":"US","coord":{"lon":-94.300278,"lat":46.016628}}
+{"_id":5023661,"name":"Cushing","country":"US","coord":{"lon":-94.576958,"lat":46.13969}}
+{"_id":5011157,"name":"Steuben","country":"US","coord":{"lon":-86.456818,"lat":46.18829}}
+{"_id":5033135,"name":"Kerrick","country":"US","coord":{"lon":-92.585747,"lat":46.338829}}
+{"_id":5685886,"name":"Wheatland County","country":"US","coord":{"lon":-109.834068,"lat":46.449959}}
+{"_id":5677247,"name":"Shawmut","country":"US","coord":{"lon":-109.524902,"lat":46.342461}}
+{"_id":5050162,"name":"Todd County","country":"US","coord":{"lon":-94.883629,"lat":46.066631}}
+{"_id":5018004,"name":"Bertha","country":"US","coord":{"lon":-95.062798,"lat":46.266628}}
+{"_id":4988755,"name":"Chippewa County","country":"US","coord":{"lon":-84.483383,"lat":46.300018}}
+{"_id":5004196,"name":"Oak Ridge","country":"US","coord":{"lon":-84.21003,"lat":46.288631}}
+{"_id":5015979,"name":"Aitkin County","country":"US","coord":{"lon":-93.416901,"lat":46.599949}}
+{"_id":5036359,"name":"Malmo","country":"US","coord":{"lon":-93.519409,"lat":46.333839}}
+{"_id":5047793,"name":"Solana","country":"US","coord":{"lon":-93.153267,"lat":46.317719}}
+{"_id":5654985,"name":"Granite County","country":"US","coord":{"lon":-113.467583,"lat":46.399921}}
+{"_id":5672554,"name":"Princeton","country":"US","coord":{"lon":-113.165611,"lat":46.41687}}
+{"_id":4832672,"name":"Harlis","country":"US","coord":{"lon":-92.312691,"lat":46.412159}}
+{"_id":5250831,"name":"Douglas County","country":"US","coord":{"lon":-91.900192,"lat":46.43327}}
+{"_id":5248277,"name":"Chaffey","country":"US","coord":{"lon":-92.163528,"lat":46.39827}}
+{"_id":5023545,"name":"Crow Wing County","country":"US","coord":{"lon":-94.083603,"lat":46.466629}}
+{"_id":5034432,"name":"Legionville","country":"US","coord":{"lon":-94.19944,"lat":46.447189}}
+{"_id":5052862,"name":"Wilkin County","country":"US","coord":{"lon":-96.46701,"lat":46.250519}}
+{"_id":5034270,"name":"Lawndale","country":"US","coord":{"lon":-96.360336,"lat":46.5569}}
+{"_id":5692146,"name":"Slope County","country":"US","coord":{"lon":-103.386574,"lat":46.388901}}
+{"_id":5037855,"name":"Mission","country":"US","coord":{"lon":-94.051102,"lat":46.58802}}
+{"_id":5799889,"name":"Kittitas County","country":"US","coord":{"lon":-120.684517,"lat":47.116508}}
+{"_id":5793294,"name":"Easton","country":"US","coord":{"lon":-121.178978,"lat":47.237061}}
+{"_id":5059489,"name":"Griggs County","country":"US","coord":{"lon":-98.219818,"lat":47.433331}}
+{"_id":5059925,"name":"Karnak","country":"US","coord":{"lon":-98.064262,"lat":47.280819}}
+{"_id":5799783,"name":"King County","country":"US","coord":{"lon":-121.817886,"lat":47.466492}}
+{"_id":7713975,"name":"Palisades Mobile Home Estates","country":"US","coord":{"lon":-122.179482,"lat":47.284679}}
+{"_id":4989617,"name":"Copper Harbor","country":"US","coord":{"lon":-87.888443,"lat":47.468788}}
+{"_id":5062211,"name":"Traill County","country":"US","coord":{"lon":-97.16703,"lat":47.444431}}
+{"_id":5061036,"name":"Preston","country":"US","coord":{"lon":-97.218697,"lat":47.312199}}
+{"_id":5021977,"name":"Cook County","country":"US","coord":{"lon":-90.55011,"lat":47.916561}}
+{"_id":5050174,"name":"Tofte","country":"US","coord":{"lon":-90.836258,"lat":47.573792}}
+{"_id":5021535,"name":"Clearwater County","country":"US","coord":{"lon":-95.366959,"lat":47.56662}}
+{"_id":5018226,"name":"Big Bear Landing","country":"US","coord":{"lon":-95.476967,"lat":47.33662}}
+{"_id":5690489,"name":"Mercer County","country":"US","coord":{"lon":-101.861557,"lat":47.35001}}
+{"_id":6331912,"name":"Knife River Village (historical)","country":"US","coord":{"lon":-101.372223,"lat":47.327782}}
+{"_id":5028500,"name":"Grand Marais","country":"US","coord":{"lon":-90.334267,"lat":47.75045}}
+{"_id":5691025,"name":"Pick City","country":"US","coord":{"lon":-101.453773,"lat":47.511391}}
+{"_id":5062441,"name":"Wells County","country":"US","coord":{"lon":-99.650398,"lat":47.597221}}
+{"_id":5059602,"name":"Heaton","country":"US","coord":{"lon":-99.547897,"lat":47.478329}}
+{"_id":5690440,"name":"McKenzie County","country":"US","coord":{"lon":-103.447693,"lat":47.708351}}
+{"_id":5689390,"name":"Grassy Butte","country":"US","coord":{"lon":-103.247971,"lat":47.392509}}
+{"_id":5045020,"name":"Saint Louis County","country":"US","coord":{"lon":-92.50074,"lat":47.58326}}
+{"_id":5037056,"name":"McKinley","country":"US","coord":{"lon":-92.411011,"lat":47.512699}}
+{"_id":5061063,"name":"Ramsey County","country":"US","coord":{"lon":-98.733727,"lat":48.233341}}
+{"_id":5058910,"name":"Doyon","country":"US","coord":{"lon":-98.536774,"lat":48.05278}}
+{"_id":5790164,"name":"Clallam County","country":"US","coord":{"lon":-123.834641,"lat":48.049809}}
+{"_id":5807732,"name":"R Corner","country":"US","coord":{"lon":-123.274902,"lat":48.093979}}
+{"_id":5810982,"name":"Snohomish County","country":"US","coord":{"lon":-121.717903,"lat":48.049831}}
+{"_id":5815237,"name":"Weallup Lake","country":"US","coord":{"lon":-122.306259,"lat":48.1101}}
+{"_id":5019874,"name":"Buyck","country":"US","coord":{"lon":-92.523491,"lat":48.121849}}
+{"_id":5586489,"name":"Bonner County","country":"US","coord":{"lon":-117.001343,"lat":48.83326}}
+{"_id":5594090,"name":"Glengary","country":"US","coord":{"lon":-116.374634,"lat":48.22187}}
+{"_id":5690614,"name":"Mountrail County","country":"US","coord":{"lon":-102.331009,"lat":48.21946}}
+{"_id":5689020,"name":"Epworth","country":"US","coord":{"lon":-102.224342,"lat":48.116131}}
+{"_id":5650265,"name":"East Malta Colony","country":"US","coord":{"lon":-107.609268,"lat":48.351662}}
+{"_id":5691033,"name":"Pierce County","country":"US","coord":{"lon":-100.036522,"lat":48.275002}}
+{"_id":5687815,"name":"Balta","country":"US","coord":{"lon":-100.037079,"lat":48.166672}}
+{"_id":5691399,"name":"Ross","country":"US","coord":{"lon":-102.54657,"lat":48.311131}}
+{"_id":5062384,"name":"Walsh County","country":"US","coord":{"lon":-97.692032,"lat":48.366661}}
+{"_id":5061001,"name":"Poland","country":"US","coord":{"lon":-97.218407,"lat":48.197762}}
+{"_id":5690436,"name":"McHenry County","country":"US","coord":{"lon":-100.62542,"lat":48.25}}
+{"_id":5688748,"name":"Denbigh","country":"US","coord":{"lon":-100.587082,"lat":48.315281}}
+{"_id":5058630,"name":"Churchs Ferry","country":"US","coord":{"lon":-99.190132,"lat":48.269169}}
+{"_id":5586587,"name":"Boulder City (historical)","country":"US","coord":{"lon":-116.069351,"lat":48.602718}}
+{"_id":5036734,"name":"Marshall County","country":"US","coord":{"lon":-96.366982,"lat":48.349972}}
+{"_id":5026983,"name":"Florian","country":"US","coord":{"lon":-96.628113,"lat":48.4422}}
+{"_id":5059143,"name":"Fairdale","country":"US","coord":{"lon":-98.231216,"lat":48.490829}}
+{"_id":5674655,"name":"Roosevelt County","country":"US","coord":{"lon":-105.133873,"lat":48.300018}}
+{"_id":5641875,"name":"Bredette","country":"US","coord":{"lon":-105.299713,"lat":48.505581}}
+{"_id":5017805,"name":"Beltrami County","country":"US","coord":{"lon":-94.900269,"lat":47.916618}}
+{"_id":5027737,"name":"Gates Corner","country":"US","coord":{"lon":-95.319138,"lat":48.452751}}
+{"_id":5059721,"name":"Hoople","country":"US","coord":{"lon":-97.634811,"lat":48.53471}}
+{"_id":5879092,"name":"Alaska","country":"US","coord":{"lon":-150.000275,"lat":64.000282}}
+{"_id":5858042,"name":"Bristol Bay Borough","country":"US","coord":{"lon":-156.833328,"lat":58.750561}}
+{"_id":5866330,"name":"King Salmon","country":"US","coord":{"lon":-156.661392,"lat":58.688332}}
+{"_id":5860696,"name":"Dillingham Census Area","country":"US","coord":{"lon":-156.000565,"lat":58.750561}}
+{"_id":5859033,"name":"Cheching (historical)","country":"US","coord":{"lon":-164.216675,"lat":60.066669}}
+{"_id":5877395,"name":"Valdez-Cordova Census Area","country":"US","coord":{"lon":-144.500565,"lat":61.500561}}
+{"_id":5878018,"name":"Whittier","country":"US","coord":{"lon":-148.683884,"lat":60.77306}}
+{"_id":5880573,"name":"Bethel Census Area","country":"US","coord":{"lon":-160.500565,"lat":60.750561}}
+{"_id":5869649,"name":"Napaskiak","country":"US","coord":{"lon":-161.766113,"lat":60.708061}}
+{"_id":5870790,"name":"Old Valdez","country":"US","coord":{"lon":-146.266388,"lat":61.115829}}
+{"_id":5879348,"name":"Anchorage Municipality","country":"US","coord":{"lon":-149.250565,"lat":61.166672}}
+{"_id":5864720,"name":"Indian","country":"US","coord":{"lon":-149.513611,"lat":60.987221}}
+{"_id":5870787,"name":"Old Village (historical)","country":"US","coord":{"lon":-154.036392,"lat":60.963329}}
+{"_id":5868437,"name":"Matanuska-Susitna Borough","country":"US","coord":{"lon":-150.005554,"lat":62.500561}}
+{"_id":7262896,"name":"Knik River","country":"US","coord":{"lon":-148.912369,"lat":61.460011}}
+{"_id":5877533,"name":"Wade Hampton Census Area","country":"US","coord":{"lon":-163.000565,"lat":62.250561}}
+{"_id":5870660,"name":"Ohogamiut","country":"US","coord":{"lon":-161.863617,"lat":61.56778}}
+{"_id":5861836,"name":"Eureka Roadhouse","country":"US","coord":{"lon":-147.16806,"lat":61.93861}}
+{"_id":5874434,"name":"Skwentna","country":"US","coord":{"lon":-151.397781,"lat":61.99028}}
+{"_id":5859279,"name":"Chisana","country":"US","coord":{"lon":-142.040833,"lat":62.066109}}
+{"_id":5869541,"name":"Nabesna","country":"US","coord":{"lon":-143.008606,"lat":62.371941}}
+{"_id":5880107,"name":"Batzulnetas (historical)","country":"US","coord":{"lon":-143.771393,"lat":62.614719}}
+{"_id":5860541,"name":"Denali Borough","country":"US","coord":{"lon":-150.191666,"lat":63.788891}}
+{"_id":5858555,"name":"Cantwell","country":"US","coord":{"lon":-148.950836,"lat":63.39167}}
+{"_id":5861900,"name":"Fairbanks North Star Borough","country":"US","coord":{"lon":-146.416672,"lat":64.833328}}
+{"_id":5870294,"name":"North Pole","country":"US","coord":{"lon":-147.349442,"lat":64.751106}}
+{"_id":5878558,"name":"Yukon-Koyukuk Census Area","country":"US","coord":{"lon":-152.716675,"lat":65.699997}}
+{"_id":5864431,"name":"Huslia","country":"US","coord":{"lon":-156.399719,"lat":65.698608}}
+{"_id":5859419,"name":"Circle Hot Springs Station","country":"US","coord":{"lon":-144.689163,"lat":65.470284}}
+{"_id":5862371,"name":"Fort Yukon","country":"US","coord":{"lon":-145.273895,"lat":66.56472}}
+{"_id":5870351,"name":"Northwest Arctic Borough","country":"US","coord":{"lon":-161.000565,"lat":66.833328}}
+{"_id":5861573,"name":"Elephant Point","country":"US","coord":{"lon":-161.346115,"lat":66.25972}}
+{"_id":5872537,"name":"Red Dog Mine","country":"US","coord":{"lon":-162.85611,"lat":68.075562}}
+{"_id":5870308,"name":"North Slope Borough","country":"US","coord":{"lon":-152.000565,"lat":69.250557}}
+{"_id":5865670,"name":"Kaktovik","country":"US","coord":{"lon":-143.623886,"lat":70.131943}}
+{"_id":5870441,"name":"Nuiqsut","country":"US","coord":{"lon":-150.976395,"lat":70.217499}}
+{"_id":4720080,"name":"Port OConnor","country":"US","coord":{"lon":-96.405807,"lat":28.448339}}
+{"_id":7218413,"name":"Port Tampa Communities","country":"US","coord":{"lon":-82.522598,"lat":27.8606}}
+{"_id":4691865,"name":"Fort Crockett","country":"US","coord":{"lon":-94.81575,"lat":29.2719}}
+{"_id":4700591,"name":"Jakes Colony","country":"US","coord":{"lon":-97.97139,"lat":29.44079}}
+{"_id":7190617,"name":"Brittany Estates Mobile Home Park","country":"US","coord":{"lon":-82.282501,"lat":29.7003}}
+{"_id":7707966,"name":"Hassel's Trailer Park","country":"US","coord":{"lon":-90.06028,"lat":29.8528}}
+{"_id":4156363,"name":"Fulton","country":"US","coord":{"lon":-81.492867,"lat":30.38413}}
+{"_id":4338017,"name":"Prairieland","country":"US","coord":{"lon":-93.213211,"lat":30.11021}}
+{"_id":4428420,"name":"Greene County","country":"US","coord":{"lon":-88.66169,"lat":31.1999}}
+{"_id":5527644,"name":"Old Corbett Place","country":"US","coord":{"lon":-103.04406,"lat":30.025181}}
+{"_id":4718711,"name":"Pflugerville","country":"US","coord":{"lon":-97.620003,"lat":30.439369}}
+{"_id":4096316,"name":"Ward Acres","country":"US","coord":{"lon":-85.398819,"lat":31.13796}}
+{"_id":4325018,"name":"Fort Polk","country":"US","coord":{"lon":-93.205437,"lat":31.046579}}
+{"_id":7262527,"name":"Whetstone","country":"US","coord":{"lon":-110.339867,"lat":31.70105}}
+{"_id":4700128,"name":"Ireland","country":"US","coord":{"lon":-97.965309,"lat":31.56683}}
+{"_id":5319417,"name":"Vandenberg Village","country":"US","coord":{"lon":-110.867867,"lat":32.180359}}
+{"_id":5462035,"name":"Cienega (historical)","country":"US","coord":{"lon":-105.100227,"lat":32.051498}}
+{"_id":4711291,"name":"Mildred","country":"US","coord":{"lon":-96.376923,"lat":32.03516}}
+{"_id":4732826,"name":"Sonoma","country":"US","coord":{"lon":-96.609993,"lat":32.34042}}
+{"_id":5172425,"name":"South Amherst","country":"US","coord":{"lon":-82.253769,"lat":41.355881}}
+{"_id":5178813,"name":"Bagdad","country":"US","coord":{"lon":-80.024223,"lat":41.952}}
+{"_id":5110019,"name":"Brant","country":"US","coord":{"lon":-79.017822,"lat":42.58839}}
+{"_id":5115722,"name":"East Beekmantown","country":"US","coord":{"lon":-73.470139,"lat":44.752541}}
+{"_id":5241035,"name":"Sheldon Junction","country":"US","coord":{"lon":-72.947632,"lat":44.901711}}
+{"_id":5060829,"name":"Ottention (historical)","country":"US","coord":{"lon":-97.560913,"lat":48.995819}}
+{"_id":7315278,"name":"Little Browning","country":"US","coord":{"lon":-112.35006,"lat":48.62524}}
+{"_id":5586496,"name":"Bonners Ferry","country":"US","coord":{"lon":-116.316307,"lat":48.69133}}
+{"_id":5301878,"name":"Liberty","country":"US","coord":{"lon":-112.486832,"lat":33.377541}}
+{"_id":4418462,"name":"Billups","country":"US","coord":{"lon":-88.585052,"lat":33.430679}}
+{"_id":4986828,"name":"Branch County","country":"US","coord":{"lon":-85.066643,"lat":41.916721}}
+{"_id":4586940,"name":"Melgrove (historical)","country":"US","coord":{"lon":-79.994812,"lat":32.92934}}
+{"_id":4686837,"name":"Draco","country":"US","coord":{"lon":-97.744476,"lat":33.104839}}
+{"_id":4111498,"name":"Fourche (historical)","country":"US","coord":{"lon":-92.235153,"lat":34.714539}}
+{"_id":5342707,"name":"Desert Hills Trailer Park","country":"US","coord":{"lon":-116.478897,"lat":33.784191}}
+{"_id":4738978,"name":"Vashti","country":"US","coord":{"lon":-98.040871,"lat":33.55566}}
+{"_id":5316335,"name":"Sunset City (historical)","country":"US","coord":{"lon":-110.653473,"lat":35.04446}}
+{"_id":5380710,"name":"Palm Wells","country":"US","coord":{"lon":-116.539459,"lat":34.077789}}
+{"_id":5378339,"name":"Oak Hill","country":"US","coord":{"lon":-118.785088,"lat":34.065281}}
+{"_id":5494197,"name":"Texico","country":"US","coord":{"lon":-103.051338,"lat":34.388691}}
+{"_id":5467102,"name":"Estancia","country":"US","coord":{"lon":-106.055847,"lat":34.758389}}
+{"_id":4059171,"name":"Douglas","country":"US","coord":{"lon":-85.728577,"lat":34.427029}}
+{"_id":5550192,"name":"West Sedona","country":"US","coord":{"lon":-111.805428,"lat":34.867241}}
+{"_id":4579071,"name":"Four Seasons","country":"US","coord":{"lon":-80.723419,"lat":34.203201}}
+{"_id":4112421,"name":"Glenlake","country":"US","coord":{"lon":-91.889297,"lat":34.193432}}
+{"_id":5479411,"name":"Milagro","country":"US","coord":{"lon":-105.239166,"lat":34.938389}}
+{"_id":5474540,"name":"Kirtland Addition","country":"US","coord":{"lon":-106.630859,"lat":35.055328}}
+{"_id":4625077,"name":"Glover Hill","country":"US","coord":{"lon":-85.651642,"lat":35.063129}}
+{"_id":4555778,"name":"Willow View","country":"US","coord":{"lon":-97.26503,"lat":35.058411}}
+{"_id":4477331,"name":"Lovejoy","country":"US","coord":{"lon":-79.919487,"lat":35.422642}}
+{"_id":4542735,"name":"Middleberg","country":"US","coord":{"lon":-97.735039,"lat":35.106178}}
+{"_id":5382990,"name":"Pine Mountain Club","country":"US","coord":{"lon":-119.156776,"lat":34.84692}}
+{"_id":4487278,"name":"Rawls","country":"US","coord":{"lon":-78.815292,"lat":35.537102}}
+{"_id":4127619,"name":"Pulaski County","country":"US","coord":{"lon":-92.300148,"lat":34.766762}}
+{"_id":5455744,"name":"Arriba","country":"US","coord":{"lon":-105.200844,"lat":35.623379}}
+{"_id":7315189,"name":"Valle Vista","country":"US","coord":{"lon":-113.862709,"lat":35.410881}}
+{"_id":5484620,"name":"Placitas Homesteads","country":"US","coord":{"lon":-106.490303,"lat":35.308102}}
+{"_id":7239972,"name":"Circle J Park","country":"US","coord":{"lon":-86.082779,"lat":35.514439}}
+{"_id":4491651,"name":"Siler City","country":"US","coord":{"lon":-79.462242,"lat":35.723469}}
+{"_id":5384214,"name":"Ponderosa","country":"US","coord":{"lon":-118.528137,"lat":36.105499}}
+{"_id":4625488,"name":"Gouge (historical)","country":"US","coord":{"lon":-82.097069,"lat":36.318169}}
+{"_id":5471040,"name":"Hebron","country":"US","coord":{"lon":-104.46582,"lat":36.73864}}
+{"_id":4759735,"name":"Fort Lee","country":"US","coord":{"lon":-77.335258,"lat":37.495701}}
+{"_id":5330056,"name":"Bootjack","country":"US","coord":{"lon":-119.886559,"lat":37.464939}}
+{"_id":5413571,"name":"Beta","country":"US","coord":{"lon":-102.690468,"lat":38.086121}}
+{"_id":5406517,"name":"Violet (historical)","country":"US","coord":{"lon":-121.971909,"lat":38.384079}}
+{"_id":4818700,"name":"Pocahontas County","country":"US","coord":{"lon":-80.033119,"lat":38.316792}}
+{"_id":4827185,"name":"Whittaker","country":"US","coord":{"lon":-81.380112,"lat":38.07761}}
+{"_id":7156618,"name":"Bryce Canyon City","country":"US","coord":{"lon":-112.156937,"lat":37.673889}}
+{"_id":5444873,"name":"Yorkville","country":"US","coord":{"lon":-105.290268,"lat":38.292221}}
+{"_id":5445914,"name":"Mansfield","country":"US","coord":{"lon":-100.767097,"lat":37.922798}}
+{"_id":5334145,"name":"Carbondale","country":"US","coord":{"lon":-121.006889,"lat":38.408798}}
+{"_id":5356429,"name":"Herald","country":"US","coord":{"lon":-121.244392,"lat":38.29575}}
+{"_id":5417561,"name":"Colorado City","country":"US","coord":{"lon":-104.835258,"lat":37.94529}}
+{"_id":5439126,"name":"Smeltertown","country":"US","coord":{"lon":-106.014458,"lat":38.547501}}
+{"_id":4144372,"name":"Rogers Development","country":"US","coord":{"lon":-75.364082,"lat":38.700951}}
+{"_id":5513171,"name":"Storey County","country":"US","coord":{"lon":-119.501289,"lat":39.375191}}
+{"_id":5422191,"name":"Fountain","country":"US","coord":{"lon":-104.700813,"lat":38.68222}}
+{"_id":8122718,"name":"Buffalo Hills Mobile Home Park","country":"US","coord":{"lon":-99.29335,"lat":38.855049}}
+{"_id":5405529,"name":"Valley Oaks Mobile Home Park","country":"US","coord":{"lon":-123.314728,"lat":39.411831}}
+{"_id":5425547,"name":"Horseshoe (historical)","country":"US","coord":{"lon":-106.085297,"lat":39.20388}}
+{"_id":4377664,"name":"Blue Springs","country":"US","coord":{"lon":-94.281609,"lat":39.016949}}
+{"_id":5323111,"name":"Alicia","country":"US","coord":{"lon":-121.581627,"lat":39.102669}}
+{"_id":5708027,"name":"Rosny","country":"US","coord":{"lon":-116.838432,"lat":40.612411}}
+{"_id":4280618,"name":"Tresham","country":"US","coord":{"lon":-97.049759,"lat":37.170029}}
+{"_id":4503289,"name":"North Beach Haven","country":"US","coord":{"lon":-74.231529,"lat":39.57317}}
+{"_id":5697515,"name":"Merklin Trailer Court","country":"US","coord":{"lon":-101.53183,"lat":40.051941}}
+{"_id":4828388,"name":"Narita","country":"US","coord":{"lon":-89.218979,"lat":39.983101}}
+{"_id":4910663,"name":"Savoy","country":"US","coord":{"lon":-88.251717,"lat":40.054749}}
+{"_id":5577516,"name":"Granby","country":"US","coord":{"lon":-105.939461,"lat":40.086102}}
+{"_id":5561455,"name":"Clam Beach","country":"US","coord":{"lon":-124.112007,"lat":40.994572}}
+{"_id":5426615,"name":"Joes","country":"US","coord":{"lon":-102.678818,"lat":39.65638}}
+{"_id":5705621,"name":"Lee","country":"US","coord":{"lon":-115.607559,"lat":40.56826}}
+{"_id":5154665,"name":"Flat Rock","country":"US","coord":{"lon":-82.860191,"lat":41.235889}}
+{"_id":5095231,"name":"Apshawa","country":"US","coord":{"lon":-74.36293,"lat":41.017601}}
+{"_id":4868205,"name":"Mount Pleasant","country":"US","coord":{"lon":-91.557938,"lat":40.963638}}
+{"_id":5784610,"name":"Reese","country":"US","coord":{"lon":-112.152443,"lat":41.250221}}
+{"_id":5215178,"name":"Tanglewood","country":"US","coord":{"lon":-75.170448,"lat":41.415089}}
+{"_id":5837377,"name":"Salt Wells","country":"US","coord":{"lon":-108.985947,"lat":41.65469}}
+{"_id":5555513,"name":"West Laramie","country":"US","coord":{"lon":-105.620552,"lat":41.308868}}
+{"_id":4850657,"name":"Cedar","country":"US","coord":{"lon":-92.525742,"lat":41.212231}}
+{"_id":4905006,"name":"Ottawa","country":"US","coord":{"lon":-88.842583,"lat":41.345589}}
+{"_id":5159178,"name":"Jerrys First Addition","country":"US","coord":{"lon":-84.574669,"lat":41.498661}}
+{"_id":5839391,"name":"Speer","country":"US","coord":{"lon":-104.895523,"lat":41.054428}}
+{"_id":7260729,"name":"Crescent City North","country":"US","coord":{"lon":-124.216988,"lat":41.766022}}
+{"_id":5007331,"name":"Rives Junction","country":"US","coord":{"lon":-84.461632,"lat":42.385872}}
+{"_id":4863737,"name":"Konigsmark","country":"US","coord":{"lon":-91.692398,"lat":41.889999}}
+{"_id":4893590,"name":"Genet","country":"US","coord":{"lon":-89.075661,"lat":42.342522}}
+{"_id":8085328,"name":"Level Acres Mobile Home Park","country":"US","coord":{"lon":-77.925407,"lat":42.092098}}
+{"_id":4884026,"name":"Bancroft Corners","country":"US","coord":{"lon":-87.862022,"lat":42.421131}}
+{"_id":4931520,"name":"Brookside","country":"US","coord":{"lon":-73.357338,"lat":42.16898}}
+{"_id":5107543,"name":"Austerlitz","country":"US","coord":{"lon":-73.473167,"lat":42.311749}}
+{"_id":7225262,"name":"Valley View Mobile Home Park","country":"US","coord":{"lon":-75.531937,"lat":42.558609}}
+{"_id":5359604,"name":"Inyo County","country":"US","coord":{"lon":-117.417572,"lat":36.583271}}
+{"_id":4670756,"name":"Anderson County","country":"US","coord":{"lon":-95.666901,"lat":31.816839}}
+{"_id":5819347,"name":"Boulder","country":"US","coord":{"lon":-109.717651,"lat":42.74828}}
+{"_id":5241643,"name":"Stratton","country":"US","coord":{"lon":-72.910927,"lat":43.042858}}
+{"_id":5816882,"name":"Air Base Acres","country":"US","coord":{"lon":-106.441139,"lat":42.882191}}
+{"_id":5000873,"name":"Marine City","country":"US","coord":{"lon":-82.492126,"lat":42.719479}}
+{"_id":7247544,"name":"Sugartree Mobile Home Park","country":"US","coord":{"lon":-83.37944,"lat":43.503609}}
+{"_id":4470398,"name":"Haywood County","country":"US","coord":{"lon":-82.96653,"lat":35.550098}}
+{"_id":5281189,"name":"Air City","country":"US","coord":{"lon":-75.422401,"lat":43.22007}}
+{"_id":5828759,"name":"Jeffrey City","country":"US","coord":{"lon":-107.827301,"lat":42.494678}}
+{"_id":5267785,"name":"Portage","country":"US","coord":{"lon":-89.462624,"lat":43.53915}}
+{"_id":7249863,"name":"Winter's Motor Court","country":"US","coord":{"lon":-83.790283,"lat":43.277222}}
+{"_id":5089451,"name":"Meredith Center","country":"US","coord":{"lon":-71.529243,"lat":43.614239}}
+{"_id":5596475,"name":"Idaho Falls","country":"US","coord":{"lon":-112.034142,"lat":43.466579}}
+{"_id":5092947,"name":"South Tamworth","country":"US","coord":{"lon":-71.303131,"lat":43.824799}}
+{"_id":5036062,"name":"Luverne","country":"US","coord":{"lon":-96.212807,"lat":43.65414}}
+{"_id":4956755,"name":"Androscoggin County","country":"US","coord":{"lon":-70.166161,"lat":44.16674}}
+{"_id":4979261,"name":"South Sanford","country":"US","coord":{"lon":-70.742561,"lat":43.41119}}
+{"_id":5049229,"name":"Sungold Heights Mobile Home Park","country":"US","coord":{"lon":-95.57473,"lat":43.63385}}
+{"_id":5026119,"name":"Fairmont Estates","country":"US","coord":{"lon":-94.443298,"lat":43.668011}}
+{"_id":5085900,"name":"Enfield","country":"US","coord":{"lon":-72.143982,"lat":43.640629}}
+{"_id":5032145,"name":"Judge","country":"US","coord":{"lon":-92.476013,"lat":43.899132}}
+{"_id":5762320,"name":"Ajax","country":"US","coord":{"lon":-103.181847,"lat":43.897491}}
+{"_id":5021610,"name":"Clinton Falls","country":"US","coord":{"lon":-93.24688,"lat":44.138851}}
+{"_id":5236027,"name":"Fairlee","country":"US","coord":{"lon":-72.143417,"lat":43.90757}}
+{"_id":4956915,"name":"Ash Point","country":"US","coord":{"lon":-69.086708,"lat":44.055641}}
+{"_id":5826603,"name":"Greybull","country":"US","coord":{"lon":-108.056213,"lat":44.48912}}
+{"_id":5246505,"name":"Borth","country":"US","coord":{"lon":-88.89595,"lat":44.091091}}
+{"_id":4859624,"name":"Hamilton County","country":"US","coord":{"lon":-93.716881,"lat":42.383308}}
+{"_id":5828620,"name":"Jack Pine","country":"US","coord":{"lon":-110.434067,"lat":43.32605}}
+{"_id":5026291,"name":"Faribault","country":"US","coord":{"lon":-93.268829,"lat":44.29496}}
+{"_id":5226534,"name":"Brookings","country":"US","coord":{"lon":-96.798393,"lat":44.311359}}
+{"_id":7259253,"name":"Ellsworth Air Force Base","country":"US","coord":{"lon":-103.075073,"lat":44.143951}}
+{"_id":5255099,"name":"Greenville","country":"US","coord":{"lon":-88.536499,"lat":44.300259}}
+{"_id":5723995,"name":"Dry Creek","country":"US","coord":{"lon":-123.27565,"lat":44.505119}}
+{"_id":5264475,"name":"New Richmond","country":"US","coord":{"lon":-92.536591,"lat":45.12302}}
+{"_id":5612492,"name":"Williams Lake Resort","country":"US","coord":{"lon":-113.965897,"lat":45.011871}}
+{"_id":5118380,"name":"Genesee County","country":"US","coord":{"lon":-78.183067,"lat":43.000622}}
+{"_id":5038018,"name":"Montevideo","country":"US","coord":{"lon":-95.72364,"lat":44.942459}}
+{"_id":5722090,"name":"Damascus Heights","country":"US","coord":{"lon":-122.449257,"lat":45.420681}}
+{"_id":5637141,"name":"Amsterdam","country":"US","coord":{"lon":-111.319962,"lat":45.75798}}
+{"_id":4986628,"name":"Bonner Landing","country":"US","coord":{"lon":-85.579529,"lat":45.70417}}
+{"_id":5043556,"name":"Rockford","country":"US","coord":{"lon":-93.734413,"lat":45.088299}}
+{"_id":5733154,"name":"Island City","country":"US","coord":{"lon":-118.044662,"lat":45.340969}}
+{"_id":5042561,"name":"Ramsey","country":"US","coord":{"lon":-93.449997,"lat":45.261101}}
+{"_id":5766453,"name":"Lemmon","country":"US","coord":{"lon":-102.159317,"lat":45.94083}}
+{"_id":5000625,"name":"Manistique","country":"US","coord":{"lon":-86.246246,"lat":45.957748}}
+{"_id":5038252,"name":"Morris","country":"US","coord":{"lon":-95.91394,"lat":45.586071}}
+{"_id":5680485,"name":"Stevensville","country":"US","coord":{"lon":-114.093163,"lat":46.509918}}
+{"_id":5034222,"name":"Lastrup","country":"US","coord":{"lon":-94.063316,"lat":46.03941}}
+{"_id":5005136,"name":"Payment","country":"US","coord":{"lon":-84.140297,"lat":46.5303}}
+{"_id":5246099,"name":"Black River","country":"US","coord":{"lon":-92.147423,"lat":46.56216}}
+{"_id":5018910,"name":"Boise De Sioux Mobile Estates","country":"US","coord":{"lon":-96.589439,"lat":46.25444}}
+{"_id":5017596,"name":"Beaver Crossing","country":"US","coord":{"lon":-91.524887,"lat":47.242149}}
+{"_id":5808140,"name":"Regal","country":"US","coord":{"lon":-120.46701,"lat":46.990131}}
+{"_id":6332701,"name":"Pine Mountain Trailer Court","country":"US","coord":{"lon":-90.36306,"lat":47.826389}}
+{"_id":7129116,"name":"Bel Air Mobile Manor","country":"US","coord":{"lon":-92.216667,"lat":46.832779}}
+{"_id":5051601,"name":"Wabasha County","country":"US","coord":{"lon":-92.216843,"lat":44.283298}}
+{"_id":5796977,"name":"Hazard","country":"US","coord":{"lon":-117.518837,"lat":47.87767}}
+{"_id":5058868,"name":"Devils Lake","country":"US","coord":{"lon":-98.86512,"lat":48.112782}}
+{"_id":5799801,"name":"King Hill","country":"US","coord":{"lon":-123.274902,"lat":48.038151}}
+{"_id":5814838,"name":"Wagner","country":"US","coord":{"lon":-121.936508,"lat":47.87899}}
+{"_id":5606743,"name":"Selle","country":"US","coord":{"lon":-116.489639,"lat":48.356869}}
+{"_id":5647366,"name":"Culbertson","country":"US","coord":{"lon":-104.516899,"lat":48.144459}}
+{"_id":7121930,"name":"Skyline Mobile Park","country":"US","coord":{"lon":-94.89167,"lat":47.496941}}
+{"_id":5866308,"name":"King Cove","country":"US","coord":{"lon":-162.310287,"lat":55.061668}}
+{"_id":5859460,"name":"Clarks Point","country":"US","coord":{"lon":-158.550827,"lat":58.84417}}
+{"_id":5876206,"name":"Tiekel (historical)","country":"US","coord":{"lon":-145.308609,"lat":61.326111}}
+{"_id":5871128,"name":"Paimiut","country":"US","coord":{"lon":-160.231934,"lat":61.964169}}
+{"_id":5861493,"name":"Eklutna","country":"US","coord":{"lon":-149.362213,"lat":61.458061}}
+{"_id":5858289,"name":"Butte","country":"US","coord":{"lon":-149.033325,"lat":61.542221}}
+{"_id":5871704,"name":"Pitkas Point","country":"US","coord":{"lon":-163.287781,"lat":62.03278}}
+{"_id":5859065,"name":"Chena (historical)","country":"US","coord":{"lon":-147.933334,"lat":64.800003}}
+{"_id":5859691,"name":"Coldfoot","country":"US","coord":{"lon":-150.184174,"lat":67.256393}}
+{"_id":5873663,"name":"Selawik","country":"US","coord":{"lon":-160.006943,"lat":66.603889}}
+{"_id":4831207,"name":"Baldwin County","country":"US","coord":{"lon":-87.766663,"lat":30.750469}}
+{"_id":5877543,"name":"Wainwright","country":"US","coord":{"lon":-160.03833,"lat":70.63694}}
+{"_id":5869874,"name":"New Stuyahok","country":"US","coord":{"lon":-157.311935,"lat":59.452782}}
+{"_id":4473661,"name":"Jonathan","country":"US","coord":{"lon":-83.017921,"lat":35.5676}}
+{"_id":5160090,"name":"Lake County","country":"US","coord":{"lon":-81.383171,"lat":41.633381}}
+{"_id":8062980,"name":"Lakeshore","country":"US","coord":{"lon":-81.406631,"lat":41.695412}}
+{"_id":4214702,"name":"Paradise Acres","country":"US","coord":{"lon":-84.879921,"lat":30.81908}}
+{"_id":4982646,"name":"West Leeds","country":"US","coord":{"lon":-70.168388,"lat":44.29285}}
+{"_id":4282211,"name":"Adair County","country":"US","coord":{"lon":-85.299957,"lat":37.11673}}
+{"_id":4309140,"name":"Sparksville","country":"US","coord":{"lon":-85.401909,"lat":37.008389}}
+{"_id":4259572,"name":"Jackson County","country":"US","coord":{"lon":-86.041924,"lat":38.878941}}
+{"_id":4256170,"name":"Cortland","country":"US","coord":{"lon":-85.964149,"lat":38.97311}}
+{"_id":4272705,"name":"Harvey County","country":"US","coord":{"lon":-97.433647,"lat":38.050011}}
+{"_id":4272558,"name":"Halstead","country":"US","coord":{"lon":-97.508652,"lat":38.0014}}
+{"_id":4282006,"name":"Woodson County","country":"US","coord":{"lon":-95.733597,"lat":37.883369}}
+{"_id":4269896,"name":"Cookville","country":"US","coord":{"lon":-95.592201,"lat":37.82032}}
+{"_id":5731570,"name":"Holdman","country":"US","coord":{"lon":-118.932503,"lat":45.872082}}
+{"_id":5269209,"name":"Rock County","country":"US","coord":{"lon":-89.06678,"lat":42.666679}}
+{"_id":4833930,"name":"Newark","country":"US","coord":{"lon":-89.227608,"lat":42.542229}}
+{"_id":5002390,"name":"Montcalm County","country":"US","coord":{"lon":-85.116692,"lat":43.333359}}
+{"_id":4990085,"name":"Crystal","country":"US","coord":{"lon":-84.914726,"lat":43.263088}}
+{"_id":5257788,"name":"Jefferson County","country":"US","coord":{"lon":-88.766769,"lat":43.03334}}
+{"_id":5249106,"name":"Cold Spring","country":"US","coord":{"lon":-88.774269,"lat":42.890839}}
+{"_id":5047121,"name":"Sherburne County","country":"US","coord":{"lon":-93.766922,"lat":45.44997}}
+{"_id":5392967,"name":"Santa Barbara County","country":"US","coord":{"lon":-120.034309,"lat":34.733318}}
+{"_id":5361432,"name":"Junction Camp","country":"US","coord":{"lon":-119.980141,"lat":34.731651}}
+{"_id":5233748,"name":"Bennington County","country":"US","coord":{"lon":-73.099548,"lat":43.033409}}
+{"_id":5239235,"name":"North Rupert","country":"US","coord":{"lon":-73.14566,"lat":43.299519}}
+{"_id":4956199,"name":"Worcester County","country":"US","coord":{"lon":-71.832848,"lat":42.333431}}
+{"_id":4951699,"name":"Spencer","country":"US","coord":{"lon":-71.992302,"lat":42.24398}}
+{"_id":5874205,"name":"Silvertip","country":"US","coord":{"lon":-149.36972,"lat":60.750561}}
+{"_id":5033463,"name":"Koochiching County","country":"US","coord":{"lon":-93.783508,"lat":48.233292}}
+{"_id":7121193,"name":"Riverside Mobile Home Court","country":"US","coord":{"lon":-93.416672,"lat":48.602779}}
+{"_id":5800813,"name":"Lewis County","country":"US","coord":{"lon":-122.401222,"lat":46.58316}}
+{"_id":5803574,"name":"Mineral","country":"US","coord":{"lon":-122.180939,"lat":46.717049}}
+{"_id":5879267,"name":"Alyeska","country":"US","coord":{"lon":-149.110825,"lat":60.960831}}
+{"_id":5799853,"name":"Kitsap County","country":"US","coord":{"lon":-122.667923,"lat":47.616482}}
+{"_id":5798318,"name":"Indianola","country":"US","coord":{"lon":-122.525688,"lat":47.74704}}
+{"_id":5523551,"name":"Hudspeth County","country":"US","coord":{"lon":-105.300507,"lat":31.466789}}
+{"_id":5529965,"name":"Salt Flat","country":"US","coord":{"lon":-105.092728,"lat":31.743731}}
+{"_id":4706143,"name":"Liberty County","country":"US","coord":{"lon":-94.800201,"lat":30.133551}}
+{"_id":4723761,"name":"Romayor","country":"US","coord":{"lon":-94.843262,"lat":30.451321}}
+{"_id":4168988,"name":"Polk County","country":"US","coord":{"lon":-81.70813,"lat":27.95863}}
+{"_id":4160443,"name":"Jones Corner","country":"US","coord":{"lon":-81.814247,"lat":28.03335}}
+{"_id":4283067,"name":"Ballard County","country":"US","coord":{"lon":-89.000618,"lat":37.050049}}
+{"_id":4308633,"name":"Slater","country":"US","coord":{"lon":-88.989227,"lat":37.016441}}
+{"_id":5662222,"name":"Liberty County","country":"US","coord":{"lon":-111.017471,"lat":48.549992}}
+{"_id":5649823,"name":"Eagle Creek Colony","country":"US","coord":{"lon":-111.210541,"lat":48.698051}}
+{"_id":5363606,"name":"Knights Ferry","country":"US","coord":{"lon":-120.67215,"lat":37.819649}}
+{"_id":4589892,"name":"Oconee County","country":"US","coord":{"lon":-83.083214,"lat":34.766762}}
+{"_id":4590045,"name":"Old Pickens","country":"US","coord":{"lon":-82.888763,"lat":34.786209}}
+{"_id":5029877,"name":"Hennepin County","country":"US","coord":{"lon":-93.450233,"lat":45.016628}}
+{"_id":5033911,"name":"Lake Sarah","country":"US","coord":{"lon":-93.690239,"lat":45.071911}}
+{"_id":5578884,"name":"Larimer County","country":"US","coord":{"lon":-105.467209,"lat":40.666649}}
+{"_id":5580569,"name":"Olympus Heights","country":"US","coord":{"lon":-105.483887,"lat":40.377762}}
+{"_id":4999022,"name":"Leelanau County","country":"US","coord":{"lon":-85.83342,"lat":44.900002}}
+{"_id":4994008,"name":"Glen Arbor","country":"US","coord":{"lon":-85.985367,"lat":44.897499}}
+{"_id":5816597,"name":"Yakima County","country":"US","coord":{"lon":-120.667847,"lat":46.466511}}
+{"_id":5785639,"name":"American River","country":"US","coord":{"lon":-121.161751,"lat":46.975948}}
+{"_id":4780384,"name":"Prince William County","country":"US","coord":{"lon":-77.48304,"lat":38.700119}}
+{"_id":4771834,"name":"Marumsco Woods","country":"US","coord":{"lon":-77.260536,"lat":38.622059}}
+{"_id":4861343,"name":"Humboldt County","country":"US","coord":{"lon":-94.200241,"lat":42.866638}}
+{"_id":4862816,"name":"Jones Siding","country":"US","coord":{"lon":-94.208023,"lat":42.67997}}
+{"_id":5735869,"name":"Lane County","country":"US","coord":{"lon":-122.834518,"lat":43.916512}}
+{"_id":5750516,"name":"Santa Clara","country":"US","coord":{"lon":-123.131203,"lat":44.103458}}
+{"_id":5789829,"name":"Chelan County","country":"US","coord":{"lon":-120.634537,"lat":47.883179}}
+{"_id":5802209,"name":"Malaga","country":"US","coord":{"lon":-120.20118,"lat":47.372349}}
+{"_id":5611570,"name":"Washington County","country":"US","coord":{"lon":-117.001282,"lat":44.75016}}
+{"_id":5587779,"name":"Cambridge","country":"US","coord":{"lon":-116.675987,"lat":44.572659}}
+{"_id":4460927,"name":"Clay County","country":"US","coord":{"lon":-83.766563,"lat":35.050091}}
+{"_id":4497590,"name":"Warne","country":"US","coord":{"lon":-83.89296,"lat":34.99453}}
+{"_id":4696376,"name":"Harris County","country":"US","coord":{"lon":-95.400223,"lat":29.833561}}
+{"_id":7209033,"name":"Airstream","country":"US","coord":{"lon":-95.183701,"lat":29.8654}}
+{"_id":4889548,"name":"De Witt County","country":"US","coord":{"lon":-88.916748,"lat":40.166698}}
+{"_id":4885902,"name":"Bucks","country":"US","coord":{"lon":-88.970078,"lat":40.265041}}
+{"_id":5230092,"name":"Northville","country":"US","coord":{"lon":-98.579262,"lat":45.155529}}
+{"_id":4943909,"name":"Middlesex County","country":"US","coord":{"lon":-71.33284,"lat":42.499821}}
+{"_id":4939693,"name":"Holliston","country":"US","coord":{"lon":-71.4245,"lat":42.2001}}
+{"_id":4310988,"name":"Todd County","country":"US","coord":{"lon":-87.133331,"lat":36.766708}}
+{"_id":4298005,"name":"Liberty","country":"US","coord":{"lon":-87.19278,"lat":36.8881}}
+{"_id":4937280,"name":"Franklin County","country":"US","coord":{"lon":-72.58287,"lat":42.58342}}
+{"_id":4938625,"name":"Hales Crossing","country":"US","coord":{"lon":-72.56398,"lat":42.654251}}
+{"_id":4074636,"name":"Marion County","country":"US","coord":{"lon":-87.866699,"lat":34.13343}}
+{"_id":4098161,"name":"Winfield","country":"US","coord":{"lon":-87.817253,"lat":33.928989}}
+{"_id":5120548,"name":"Herkimer County","country":"US","coord":{"lon":-74.9496,"lat":43.450069}}
+{"_id":5128715,"name":"Newville","country":"US","coord":{"lon":-74.825706,"lat":42.97646}}
+{"_id":4071898,"name":"Lauderdale County","country":"US","coord":{"lon":-87.633362,"lat":34.900089}}
+{"_id":4050283,"name":"Blackburn","country":"US","coord":{"lon":-87.646141,"lat":34.93092}}
+{"_id":4458155,"name":"Buncombe County","country":"US","coord":{"lon":-82.51651,"lat":35.600109}}
+{"_id":4456121,"name":"Black Mountain","country":"US","coord":{"lon":-82.321228,"lat":35.617901}}
+{"_id":4542393,"name":"McClain County","country":"US","coord":{"lon":-97.516983,"lat":35.016739}}
+{"_id":4537728,"name":"Goldsby","country":"US","coord":{"lon":-97.476982,"lat":35.141178}}
+{"_id":5182858,"name":"Cameron County","country":"US","coord":{"lon":-78.375023,"lat":41.50034}}
+{"_id":5207247,"name":"Prospect Park","country":"US","coord":{"lon":-78.215561,"lat":41.51701}}
+{"_id":4781039,"name":"Rappahannock County","country":"US","coord":{"lon":-78.149719,"lat":38.66679}}
+{"_id":4771926,"name":"Massanova","country":"US","coord":{"lon":-78.077217,"lat":38.67012}}
+{"_id":7313495,"name":"Satsuma Mobile Home Park","country":"US","coord":{"lon":-87.752159,"lat":30.51379}}
+{"_id":4791271,"name":"City of Virginia Beach","country":"US","coord":{"lon":-76.005211,"lat":36.737652}}
+{"_id":6332275,"name":"Bellwood Estates","country":"US","coord":{"lon":-76.126389,"lat":36.76556}}
+{"_id":5759298,"name":"Wasco County","country":"US","coord":{"lon":-121.25145,"lat":45.166512}}
+{"_id":5758029,"name":"Tygh Valley","country":"US","coord":{"lon":-121.173119,"lat":45.247341}}
+{"_id":4177321,"name":"Wakulla County","country":"US","coord":{"lon":-84.333229,"lat":30.16687}}
+{"_id":4177696,"name":"Welika (historical)","country":"US","coord":{"lon":-84.533241,"lat":30.283529}}
+{"_id":4979200,"name":"South Lewiston","country":"US","coord":{"lon":-70.142548,"lat":44.065632}}
+{"_id":5064663,"name":"Brown County","country":"US","coord":{"lon":-99.950401,"lat":42.433331}}
+{"_id":5082088,"name":"Winfield (historical)","country":"US","coord":{"lon":-99.67762,"lat":42.673611}}
+{"_id":5391832,"name":"San Diego County","country":"US","coord":{"lon":-116.800858,"lat":33.033379}}
+{"_id":5363944,"name":"La Jolla Amago","country":"US","coord":{"lon":-116.863358,"lat":33.28281}}
+{"_id":4267902,"name":"Barber County","country":"US","coord":{"lon":-98.683701,"lat":37.23336}}
+{"_id":4270994,"name":"Elm Mills","country":"US","coord":{"lon":-98.687027,"lat":37.43391}}
+{"_id":4750738,"name":"Campbell County","country":"US","coord":{"lon":-79.099739,"lat":37.233479}}
+{"_id":4763029,"name":"Happy Valley","country":"US","coord":{"lon":-79.145302,"lat":37.25848}}
+{"_id":4739804,"name":"Waller County","country":"US","coord":{"lon":-96.000793,"lat":30.00078}}
+{"_id":4696940,"name":"Hegar","country":"US","coord":{"lon":-95.827728,"lat":30.116051}}
+{"_id":4543314,"name":"Murray County","country":"US","coord":{"lon":-97.03363,"lat":34.483421}}
+{"_id":4535205,"name":"Dougherty","country":"US","coord":{"lon":-97.055573,"lat":34.399529}}
+{"_id":4270053,"name":"Cowley County","country":"US","coord":{"lon":-96.833641,"lat":37.23336}}
+{"_id":4267427,"name":"Akron","country":"US","coord":{"lon":-97.015038,"lat":37.351688}}
+{"_id":4898188,"name":"Kankakee County","country":"US","coord":{"lon":-87.866707,"lat":41.150028}}
+{"_id":4887309,"name":"Chebanse","country":"US","coord":{"lon":-87.908096,"lat":41.00309}}
+{"_id":5106044,"name":"Warren County","country":"US","coord":{"lon":-74.949623,"lat":40.833431}}
+{"_id":5099767,"name":"Jacksonburg","country":"US","coord":{"lon":-74.980453,"lat":40.99176}}
+{"_id":4161831,"name":"Leon County","country":"US","coord":{"lon":-84.208229,"lat":30.49464}}
+{"_id":5292672,"name":"Diamond Point Summer Homes","country":"US","coord":{"lon":-111.190407,"lat":34.329762}}
+{"_id":5652361,"name":"Flathead County","country":"US","coord":{"lon":-114.251244,"lat":48.333302}}
+{"_id":5652658,"name":"Forest Hill Village","country":"US","coord":{"lon":-114.257896,"lat":48.118011}}
+{"_id":5374376,"name":"Monterey County","country":"US","coord":{"lon":-121.251587,"lat":36.250519}}
+{"_id":5354812,"name":"Hacienda Carmel","country":"US","coord":{"lon":-121.87912,"lat":36.537182}}
+{"_id":4966407,"name":"Hancock County","country":"US","coord":{"lon":-68.39946,"lat":44.533409}}
+{"_id":4964616,"name":"Fort George","country":"US","coord":{"lon":-68.805313,"lat":44.390911}}
+{"_id":4674915,"name":"Blanco County","country":"US","coord":{"lon":-98.416969,"lat":30.250759}}
+{"_id":4691611,"name":"Flugrath","country":"US","coord":{"lon":-98.519753,"lat":30.102989}}
+{"_id":5130111,"name":"Otsego County","country":"US","coord":{"lon":-75.016273,"lat":42.633411}}
+{"_id":5141797,"name":"Unadilla Center","country":"US","coord":{"lon":-75.308777,"lat":42.404251}}
+{"_id":5855797,"name":"Hawaii","country":"US","coord":{"lon":-156.500275,"lat":20.75028}}
+{"_id":5372954,"name":"Miles","country":"US","coord":{"lon":-120.703232,"lat":35.185532}}
+{"_id":5759046,"name":"Wallowa County","country":"US","coord":{"lon":-117.167664,"lat":45.500149}}
+{"_id":5732738,"name":"Imnaha","country":"US","coord":{"lon":-116.833214,"lat":45.559319}}
+{"_id":5440680,"name":"Summit County","country":"US","coord":{"lon":-106.017242,"lat":39.599991}}
+{"_id":5419606,"name":"Dillon","country":"US","coord":{"lon":-106.04335,"lat":39.63026}}
+{"_id":5583239,"name":"Weld County","country":"US","coord":{"lon":-104.533852,"lat":40.633308}}
+{"_id":5582068,"name":"Sloan","country":"US","coord":{"lon":-104.488007,"lat":40.051651}}
+{"_id":5134820,"name":"Sages Crossing","country":"US","coord":{"lon":-75.334892,"lat":42.58535}}
+{"_id":4801546,"name":"Cass","country":"US","coord":{"lon":-79.91478,"lat":38.396778}}
+{"_id":4407074,"name":"Saint Louis County","country":"US","coord":{"lon":-90.400124,"lat":38.633389}}
+{"_id":4379782,"name":"Camp Wyman","country":"US","coord":{"lon":-90.668182,"lat":38.523941}}
+{"_id":5647905,"name":"Dawson County","country":"US","coord":{"lon":-104.90052,"lat":47.266682}}
+{"_id":5673835,"name":"Richey","country":"US","coord":{"lon":-105.074982,"lat":47.643902}}
+{"_id":5150853,"name":"Columbiana County","country":"US","coord":{"lon":-80.750076,"lat":40.75034}}
+{"_id":7234710,"name":"Lynn Mobile Manor","country":"US","coord":{"lon":-80.676941,"lat":40.884171}}
+{"_id":4163566,"name":"Martin County","country":"US","coord":{"lon":-80.416443,"lat":27.08366}}
+{"_id":4146296,"name":"Arundel","country":"US","coord":{"lon":-80.298378,"lat":27.08811}}
+{"_id":5207042,"name":"Potter County","country":"US","coord":{"lon":-78.125008,"lat":42.00034}}
+{"_id":5181222,"name":"Borie","country":"US","coord":{"lon":-77.952217,"lat":41.685902}}
+{"_id":4862800,"name":"Jones County","country":"US","coord":{"lon":-91.133476,"lat":42.116669}}
+{"_id":4850890,"name":"Center Junction","country":"US","coord":{"lon":-91.08709,"lat":42.116119}}
+{"_id":5113380,"name":"Columbus","country":"US","coord":{"lon":-75.372673,"lat":42.68396}}
+{"_id":5101305,"name":"Monmouth County","country":"US","coord":{"lon":-74.166252,"lat":40.30011}}
+{"_id":5095111,"name":"Allaire","country":"US","coord":{"lon":-74.12542,"lat":40.158451}}
+{"_id":5733351,"name":"Jackson County","country":"US","coord":{"lon":-122.83448,"lat":42.416512}}
+{"_id":5749213,"name":"Rogue River","country":"US","coord":{"lon":-123.171997,"lat":42.435951}}
+{"_id":4682500,"name":"Collin County","country":"US","coord":{"lon":-96.566933,"lat":33.200119}}
+{"_id":4722503,"name":"Rhea Mills","country":"US","coord":{"lon":-96.733047,"lat":33.262341}}
+{"_id":5177229,"name":"Wood County","country":"US","coord":{"lon":-83.6166,"lat":41.366718}}
+{"_id":5830007,"name":"Lander","country":"US","coord":{"lon":-108.730667,"lat":42.833012}}
+{"_id":4690140,"name":"Fannin County","country":"US","coord":{"lon":-96.11692,"lat":33.600101}}
+{"_id":4727778,"name":"Selfs","country":"US","coord":{"lon":-95.914413,"lat":33.692322}}
+{"_id":4285302,"name":"Boyd County","country":"US","coord":{"lon":-82.68322,"lat":38.366749}}
+{"_id":4296777,"name":"Kavanaugh","country":"US","coord":{"lon":-82.586823,"lat":38.253422}}
+{"_id":5095598,"name":"Bergen County","country":"US","coord":{"lon":-74.049583,"lat":40.93343}}
+{"_id":5101873,"name":"North Arlington","country":"US","coord":{"lon":-74.133202,"lat":40.788429}}
+{"_id":5585826,"name":"Bingham County","country":"US","coord":{"lon":-112.311638,"lat":43.17408}}
+{"_id":5605923,"name":"Rouse","country":"US","coord":{"lon":-112.479149,"lat":43.226582}}
+{"_id":4236738,"name":"Cumberland County","country":"US","coord":{"lon":-88.250603,"lat":39.266701}}
+{"_id":4241842,"name":"Jewett","country":"US","coord":{"lon":-88.245872,"lat":39.207821}}
+{"_id":4082974,"name":"Pickens County","country":"US","coord":{"lon":-88.083359,"lat":33.283451}}
+{"_id":4095475,"name":"Vienna","country":"US","coord":{"lon":-88.191971,"lat":33.018742}}
+{"_id":5308916,"name":"Pinal County","country":"US","coord":{"lon":-111.517349,"lat":33.000622}}
+{"_id":4983956,"name":"Alger County","country":"US","coord":{"lon":-86.700157,"lat":46.333279}}
+{"_id":4988833,"name":"Christmas","country":"US","coord":{"lon":-86.701553,"lat":46.43689}}
+{"_id":5795265,"name":"Garfield County","country":"US","coord":{"lon":-117.551018,"lat":46.449871}}
+{"_id":5807169,"name":"Pomeroy","country":"US","coord":{"lon":-117.602692,"lat":46.474869}}
+{"_id":4266295,"name":"Vigo County","country":"US","coord":{"lon":-87.41391,"lat":39.466702}}
+{"_id":4258848,"name":"Hickory Island","country":"US","coord":{"lon":-87.239464,"lat":39.329479}}
+{"_id":5275451,"name":"Taylor County","country":"US","coord":{"lon":-90.516808,"lat":45.21664}}
+{"_id":5268222,"name":"Queenstown","country":"US","coord":{"lon":-90.2882,"lat":45.35191}}
+{"_id":5395169,"name":"Shepards","country":"US","coord":{"lon":-119.453453,"lat":34.39888}}
+{"_id":4334734,"name":"Natchitoches Parish","country":"US","coord":{"lon":-93.133499,"lat":31.76683}}
+{"_id":4325394,"name":"Galbraith","country":"US","coord":{"lon":-92.812378,"lat":31.49128}}
+{"_id":4533932,"name":"Comanche County","country":"US","coord":{"lon":-98.483673,"lat":34.66674}}
+{"_id":4539283,"name":"Indiahoma","country":"US","coord":{"lon":-98.751457,"lat":34.619789}}
+{"_id":4727403,"name":"Schroeder","country":"US","coord":{"lon":-97.224426,"lat":28.81554}}
+{"_id":4458491,"name":"Cabarrus County","country":"US","coord":{"lon":-80.56646,"lat":35.36681}}
+{"_id":4480727,"name":"Mount Pleasant","country":"US","coord":{"lon":-80.435898,"lat":35.399311}}
+{"_id":5446470,"name":"Sherman County","country":"US","coord":{"lon":-101.717117,"lat":39.349998}}
+{"_id":5445479,"name":"Goodland","country":"US","coord":{"lon":-101.710167,"lat":39.35083}}
+{"_id":5471293,"name":"Hidalgo County","country":"US","coord":{"lon":-109.026733,"lat":32.697849}}
+{"_id":5488280,"name":"Rodeo","country":"US","coord":{"lon":-109.031174,"lat":31.835369}}
+{"_id":5051594,"name":"Wabasha","country":"US","coord":{"lon":-92.032944,"lat":44.383862}}
+{"_id":4473631,"name":"Johnston County","country":"US","coord":{"lon":-78.399719,"lat":35.533489}}
+{"_id":4498447,"name":"Westview","country":"US","coord":{"lon":-78.372498,"lat":35.532661}}
+{"_id":4198821,"name":"Hall County","country":"US","coord":{"lon":-83.783234,"lat":34.316769}}
+{"_id":4214235,"name":"Olde Federal Pointe","country":"US","coord":{"lon":-83.94574,"lat":34.22121}}
+{"_id":5350964,"name":"Fresno County","country":"US","coord":{"lon":-119.834312,"lat":36.666618}}
+{"_id":5388241,"name":"Rock Haven","country":"US","coord":{"lon":-119.31929,"lat":37.125778}}
+{"_id":5077695,"name":"Sarpy County","country":"US","coord":{"lon":-96.133629,"lat":41.099998}}
+{"_id":5074824,"name":"Paradise Park","country":"US","coord":{"lon":-95.89473,"lat":41.122219}}
+{"_id":4831725,"name":"Connecticut","country":"US","coord":{"lon":-72.666481,"lat":41.667042}}
+{"_id":4086183,"name":"River Park","country":"US","coord":{"lon":-87.811928,"lat":30.45075}}
+{"_id":5858896,"name":"Central","country":"US","coord":{"lon":-144.803055,"lat":65.572502}}
+{"_id":4695236,"name":"Grimes County","country":"US","coord":{"lon":-95.966904,"lat":30.533529}}
+{"_id":4690393,"name":"Ferguson Crossing","country":"US","coord":{"lon":-96.181633,"lat":30.6077}}
+{"_id":5461428,"name":"Chaves County","country":"US","coord":{"lon":-104.450523,"lat":33.38343}}
+{"_id":5471439,"name":"Highway Mill","country":"US","coord":{"lon":-104.848312,"lat":33.366211}}
+{"_id":4921729,"name":"Huntington County","country":"US","coord":{"lon":-85.497482,"lat":40.883099}}
+{"_id":4921162,"name":"Harlansburg","country":"US","coord":{"lon":-85.564423,"lat":40.814491}}
+{"_id":4580549,"name":"Greenville County","country":"US","coord":{"lon":-82.366508,"lat":34.88345}}
+{"_id":4579855,"name":"Glassy","country":"US","coord":{"lon":-82.313171,"lat":35.123169}}
+{"_id":5416840,"name":"Cheyenne County","country":"US","coord":{"lon":-102.600471,"lat":38.83334}}
+{"_id":5432024,"name":"Mount Pearl","country":"US","coord":{"lon":-102.789368,"lat":38.962502}}
+{"_id":4705758,"name":"Lee County","country":"US","coord":{"lon":-96.950256,"lat":30.28355}}
+{"_id":4046440,"name":"Northrup","country":"US","coord":{"lon":-96.970261,"lat":30.1005}}
+{"_id":4923124,"name":"Madison County","country":"US","coord":{"lon":-85.681641,"lat":40.193649}}
+{"_id":4922847,"name":"Linwood","country":"US","coord":{"lon":-85.681641,"lat":40.193649}}
+{"_id":4392606,"name":"Johnson County","country":"US","coord":{"lon":-93.800217,"lat":38.75029}}
+{"_id":4390914,"name":"Holden","country":"US","coord":{"lon":-93.991333,"lat":38.71418}}
+{"_id":5784339,"name":"Wasatch County","country":"US","coord":{"lon":-111.126282,"lat":40.375511}}
+{"_id":5548441,"name":"Three Forks","country":"US","coord":{"lon":-110.957108,"lat":39.974682}}
+{"_id":5037083,"name":"McLeod County","country":"US","coord":{"lon":-94.250809,"lat":44.833302}}
+{"_id":5019460,"name":"Brownton","country":"US","coord":{"lon":-94.350258,"lat":44.731911}}
+{"_id":5332191,"name":"Butte County","country":"US","coord":{"lon":-121.567749,"lat":39.649879}}
+{"_id":5324046,"name":"Anita","country":"US","coord":{"lon":-121.97831,"lat":39.810719}}
+{"_id":7262153,"name":"Priest Point","country":"US","coord":{"lon":-122.247787,"lat":48.03109}}
+{"_id":5323414,"name":"Alpine County","country":"US","coord":{"lon":-119.80101,"lat":38.599911}}
+{"_id":5326968,"name":"Bear Valley","country":"US","coord":{"lon":-120.039909,"lat":38.46463}}
+{"_id":5872033,"name":"Potter Hill","country":"US","coord":{"lon":-149.816666,"lat":61.083328}}
+{"_id":4151140,"name":"Citrus County","country":"US","coord":{"lon":-82.458153,"lat":28.874701}}
+{"_id":4174252,"name":"Sugarmill Woods","country":"US","coord":{"lon":-82.50621,"lat":28.73221}}
+{"_id":5546434,"name":"Sanpete County","country":"US","coord":{"lon":-111.501297,"lat":39.250519}}
+{"_id":5542777,"name":"Manti Canyon Summer Homes","country":"US","coord":{"lon":-111.521301,"lat":39.256069}}
+{"_id":4901666,"name":"McHenry County","country":"US","coord":{"lon":-88.466759,"lat":42.333351}}
+{"_id":5859060,"name":"Chena Hot Springs","country":"US","coord":{"lon":-146.055557,"lat":65.053062}}
+{"_id":4903497,"name":"New Holland","country":"US","coord":{"lon":-89.58094,"lat":40.184769}}
+{"_id":4410296,"name":"Stoddard County","country":"US","coord":{"lon":-89.883423,"lat":36.76672}}
+{"_id":4379124,"name":"Bunker Hill","country":"US","coord":{"lon":-89.96981,"lat":36.705891}}
+{"_id":5173160,"name":"Stony Ridge","country":"US","coord":{"lon":-83.507149,"lat":41.51033}}
+{"_id":4580988,"name":"Hampton County","country":"US","coord":{"lon":-81.116493,"lat":32.800171}}
+{"_id":4574958,"name":"Cleland Crossroads","country":"US","coord":{"lon":-81.117882,"lat":32.939049}}
+{"_id":5091860,"name":"Rockingham County","country":"US","coord":{"lon":-71.099503,"lat":42.966751}}
+{"_id":5094843,"name":"Winniconic","country":"US","coord":{"lon":-70.875893,"lat":43.022308}}
+{"_id":5876887,"name":"Tutlut (historical)","country":"US","coord":{"lon":-149.983337,"lat":64.75}}
+{"_id":5401000,"name":"Talus","country":"US","coord":{"lon":-117.972862,"lat":36.086891}}
+{"_id":4106009,"name":"Cleburne County","country":"US","coord":{"lon":-92.016823,"lat":35.51675}}
+{"_id":4100265,"name":"Banner","country":"US","coord":{"lon":-91.831528,"lat":35.641739}}
+{"_id":5875188,"name":"Stevens Village","country":"US","coord":{"lon":-149.090836,"lat":66.006393}}
+{"_id":5874713,"name":"Soo City (historical)","country":"US","coord":{"lon":-151.483337,"lat":66.716667}}
+{"_id":5666648,"name":"Missoula County","country":"US","coord":{"lon":-113.800926,"lat":47.01659}}
+{"_id":5663267,"name":"Lolo Hot Springs","country":"US","coord":{"lon":-114.53067,"lat":46.727699}}
+{"_id":7262861,"name":"Fishhook","country":"US","coord":{"lon":-149.23613,"lat":61.744019}}
+{"_id":5861187,"name":"Eagle River","country":"US","coord":{"lon":-149.56778,"lat":61.321388}}
+{"_id":4709145,"name":"Marilee","country":"US","coord":{"lon":-96.761383,"lat":33.403721}}
+{"_id":5860260,"name":"Dahl","country":"US","coord":{"lon":-149.477219,"lat":60.665562}}
+{"_id":5427500,"name":"Kiowa County","country":"US","coord":{"lon":-102.817139,"lat":38.433338}}
+{"_id":5420323,"name":"Eads","country":"US","coord":{"lon":-102.78186,"lat":38.48056}}
+{"_id":5190337,"name":"Franklin County","country":"US","coord":{"lon":-77.666382,"lat":40.250359}}
+{"_id":4561892,"name":"Upton","country":"US","coord":{"lon":-77.806664,"lat":39.80537}}
+{"_id":4163456,"name":"Marion County","country":"US","coord":{"lon":-82.041481,"lat":29.249701}}
+{"_id":4149912,"name":"Candler","country":"US","coord":{"lon":-81.96814,"lat":29.071369}}
+{"_id":4913271,"name":"Tazewell County","country":"US","coord":{"lon":-89.550102,"lat":40.533371}}
+{"_id":4889038,"name":"Crandall","country":"US","coord":{"lon":-89.432037,"lat":40.63282}}
+{"_id":5182829,"name":"Cambria County","country":"US","coord":{"lon":-78.750031,"lat":40.625351}}
+{"_id":5219003,"name":"Westmont","country":"US","coord":{"lon":-78.951691,"lat":40.315632}}
+{"_id":4419138,"name":"Bothwell","country":"US","coord":{"lon":-88.74337,"lat":31.327681}}
+{"_id":4717232,"name":"Palestine","country":"US","coord":{"lon":-95.630791,"lat":31.762119}}
+{"_id":5528909,"name":"Randall County","country":"US","coord":{"lon":-101.900467,"lat":34.966721}}
+{"_id":5527923,"name":"Palisades","country":"US","coord":{"lon":-101.802406,"lat":35.061722}}
+{"_id":4742143,"name":"Williamson County","country":"US","coord":{"lon":-97.600281,"lat":30.65019}}
+{"_id":4724129,"name":"Round Rock","country":"US","coord":{"lon":-97.678902,"lat":30.508261}}
+{"_id":4696788,"name":"Hays County","country":"US","coord":{"lon":-98.033623,"lat":30.050211}}
+{"_id":4726491,"name":"San Marcos","country":"US","coord":{"lon":-97.941391,"lat":29.88327}}
+{"_id":4943926,"name":"Middleton","country":"US","coord":{"lon":-71.016159,"lat":42.595089}}
+{"_id":4947607,"name":"Plymouth County","country":"US","coord":{"lon":-70.832817,"lat":41.833439}}
+{"_id":4929354,"name":"Assinippi","country":"US","coord":{"lon":-70.850883,"lat":42.158428}}
+{"_id":4597954,"name":"Sumter County","country":"US","coord":{"lon":-80.399803,"lat":33.866821}}
+{"_id":4582108,"name":"Home Acres","country":"US","coord":{"lon":-80.478416,"lat":33.988491}}
+{"_id":5041970,"name":"Polk County","country":"US","coord":{"lon":-96.583679,"lat":47.75053}}
+{"_id":6332453,"name":"Riverview Terrace","country":"US","coord":{"lon":-96.577782,"lat":47.761108}}
+{"_id":5279387,"name":"Winnebago County","country":"US","coord":{"lon":-88.650108,"lat":44.06665}}
+{"_id":5257623,"name":"Island Park","country":"US","coord":{"lon":-88.80233,"lat":44.022758}}
+{"_id":4853335,"name":"Dallas County","country":"US","coord":{"lon":-94.050232,"lat":41.683319}}
+{"_id":4847721,"name":"Bar-Jac Mobile Estates","country":"US","coord":{"lon":-94.108566,"lat":41.859711}}
+{"_id":4187390,"name":"Chatham County","country":"US","coord":{"lon":-81.083168,"lat":32.001598}}
+{"_id":4217078,"name":"Port Wentworth Junction","country":"US","coord":{"lon":-81.192062,"lat":32.14381}}
+{"_id":5280563,"name":"Ohio County","country":"US","coord":{"lon":-80.616463,"lat":40.100071}}
+{"_id":5280753,"name":"Triadelphia","country":"US","coord":{"lon":-80.62841,"lat":40.05257}}
+{"_id":4481757,"name":"New Hanover County","country":"US","coord":{"lon":-77.866371,"lat":34.25045}}
+{"_id":7230311,"name":"Charter Oaks Mobile Home Park","country":"US","coord":{"lon":-77.902702,"lat":34.126202}}
+{"_id":4483478,"name":"Olympia","country":"US","coord":{"lon":-76.970779,"lat":35.13905}}
+{"_id":5583739,"name":"Ada County","country":"US","coord":{"lon":-116.126221,"lat":43.416561}}
+{"_id":5595728,"name":"Hillcrest","country":"US","coord":{"lon":-116.182892,"lat":43.563499}}
+{"_id":4481626,"name":"Nelms","country":"US","coord":{"lon":-76.704933,"lat":35.051552}}
+{"_id":4152014,"name":"Cosmo","country":"US","coord":{"lon":-81.515373,"lat":30.364679}}
+{"_id":4919988,"name":"Elkhart County","country":"US","coord":{"lon":-85.834442,"lat":41.582272}}
+{"_id":4927773,"name":"Wakarusa","country":"US","coord":{"lon":-86.020828,"lat":41.53616}}
+{"_id":5134189,"name":"Rockland County","country":"US","coord":{"lon":-74.049591,"lat":41.166759}}
+{"_id":5127335,"name":"Montebello","country":"US","coord":{"lon":-74.118477,"lat":41.135929}}
+{"_id":4521093,"name":"Perry County","country":"US","coord":{"lon":-82.2332,"lat":39.733398}}
+{"_id":4524993,"name":"Somerset","country":"US","coord":{"lon":-82.297089,"lat":39.807011}}
+{"_id":5229782,"name":"Minnehaha County","country":"US","coord":{"lon":-96.758659,"lat":43.666641}}
+{"_id":5229007,"name":"Klein Subdivision","country":"US","coord":{"lon":-96.826721,"lat":43.518311}}
+{"_id":4296212,"name":"Jefferson County","country":"US","coord":{"lon":-85.649963,"lat":38.183399}}
+{"_id":7260226,"name":"Valley Station  (historical)","country":"US","coord":{"lon":-85.858871,"lat":38.105042}}
+{"_id":5462019,"name":"Cibola County","country":"US","coord":{"lon":-109.058701,"lat":34.86087}}
+{"_id":5483605,"name":"Paxton Springs","country":"US","coord":{"lon":-108.066727,"lat":35.039211}}
+{"_id":5487732,"name":"Rio Arriba County","country":"US","coord":{"lon":-106.700592,"lat":36.533352}}
+{"_id":5466463,"name":"El Guacho","country":"US","coord":{"lon":-106.086967,"lat":36.006691}}
+{"_id":5572575,"name":"Tehama County","country":"US","coord":{"lon":-122.301109,"lat":40.133209}}
+{"_id":5570062,"name":"Red Bank","country":"US","coord":{"lon":-122.445282,"lat":40.099319}}
+{"_id":5465283,"name":"Doña Ana County","country":"US","coord":{"lon":-106.376106,"lat":33.000641}}
+{"_id":5458688,"name":"Boyd","country":"US","coord":{"lon":-106.573608,"lat":32.32259}}
+{"_id":5466318,"name":"Eddy County","country":"US","coord":{"lon":-104.751083,"lat":32.87566}}
+{"_id":5470711,"name":"Harkey Crossing","country":"US","coord":{"lon":-104.197441,"lat":32.236511}}
+{"_id":5475594,"name":"Lea County","country":"US","coord":{"lon":-103.467163,"lat":32.800121}}
+{"_id":5477770,"name":"Maljamar","country":"US","coord":{"lon":-103.762733,"lat":32.856232}}
+{"_id":5480395,"name":"Mountainair","country":"US","coord":{"lon":-106.241127,"lat":34.52034}}
+{"_id":5421258,"name":"Eno","country":"US","coord":{"lon":-104.844139,"lat":39.887211}}
+{"_id":4270088,"name":"Crawford County","country":"US","coord":{"lon":-94.850243,"lat":37.51672}}
+{"_id":4274224,"name":"Langdon","country":"US","coord":{"lon":-94.705513,"lat":37.353111}}
+{"_id":4988934,"name":"Clare County","country":"US","coord":{"lon":-84.850021,"lat":43.983349}}
+{"_id":4989353,"name":"Colonville","country":"US","coord":{"lon":-84.705849,"lat":43.844189}}
+{"_id":5070270,"name":"Holt County","country":"US","coord":{"lon":-98.767036,"lat":42.450001}}
+{"_id":5071537,"name":"Kipples Trailer Court","country":"US","coord":{"lon":-98.647591,"lat":42.457779}}
+{"_id":5766411,"name":"Lawrence County","country":"US","coord":{"lon":-103.817146,"lat":44.36665}}
+{"_id":5768578,"name":"Roubaix","country":"US","coord":{"lon":-103.666313,"lat":44.275822}}
+{"_id":5577409,"name":"Glendale","country":"US","coord":{"lon":-105.366379,"lat":40.081928}}
+{"_id":5420332,"name":"Eagle County","country":"US","coord":{"lon":-106.700592,"lat":39.63332}}
+{"_id":5413922,"name":"Bighorn","country":"US","coord":{"lon":-106.297249,"lat":39.63665}}
+{"_id":5579611,"name":"Masonville","country":"US","coord":{"lon":-105.210823,"lat":40.48748}}
+{"_id":4380170,"name":"Carter County","country":"US","coord":{"lon":-90.933456,"lat":36.95005}}
+{"_id":4381100,"name":"Chicopee","country":"US","coord":{"lon":-91.005676,"lat":36.98505}}
+{"_id":4271650,"name":"Ford County","country":"US","coord":{"lon":-99.900414,"lat":37.70002}}
+{"_id":5445298,"name":"Dodge City","country":"US","coord":{"lon":-100.017082,"lat":37.7528}}
+{"_id":4700729,"name":"Jasper County","country":"US","coord":{"lon":-94.016853,"lat":30.73354}}
+{"_id":4677426,"name":"Bunker Hill","country":"US","coord":{"lon":-93.94268,"lat":30.39715}}
+{"_id":4317649,"name":"Bossier Parish","country":"US","coord":{"lon":-93.600182,"lat":32.63348}}
+{"_id":4326477,"name":"Greenacres Place","country":"US","coord":{"lon":-93.716011,"lat":32.569592}}
+{"_id":4089551,"name":"Shelby County","country":"US","coord":{"lon":-86.666649,"lat":33.266781}}
+{"_id":4094277,"name":"Tulse","country":"US","coord":{"lon":-86.902771,"lat":33.24511}}
+{"_id":4345618,"name":"Webster Parish","country":"US","coord":{"lon":-93.350166,"lat":32.716808}}
+{"_id":4341543,"name":"Sibley","country":"US","coord":{"lon":-93.29628,"lat":32.539322}}
+{"_id":4113088,"name":"Greene County","country":"US","coord":{"lon":-90.55011,"lat":36.11673}}
+{"_id":4106726,"name":"Cotton Belt","country":"US","coord":{"lon":-90.461769,"lat":36.093121}}
+{"_id":4076607,"name":"Mobile County","country":"US","coord":{"lon":-88.199997,"lat":30.78352}}
+{"_id":4089186,"name":"Seven Hills","country":"US","coord":{"lon":-88.303062,"lat":30.654079}}
+{"_id":5598264,"name":"Latah County","country":"US","coord":{"lon":-117.001282,"lat":47.125172}}
+{"_id":5610655,"name":"Troy","country":"US","coord":{"lon":-116.7696,"lat":46.736839}}
+{"_id":4941425,"name":"Knights Crossing","country":"US","coord":{"lon":-70.88839,"lat":42.775089}}
+{"_id":4752978,"name":"Clarke County","country":"US","coord":{"lon":-77.966393,"lat":39.116772}}
+{"_id":4745591,"name":"Barker Land","country":"US","coord":{"lon":-77.889442,"lat":39.073719}}
+{"_id":5525584,"name":"Lubbock County","country":"US","coord":{"lon":-101.833778,"lat":33.600079}}
+{"_id":5522990,"name":"Heckville","country":"US","coord":{"lon":-101.665169,"lat":33.754799}}
+{"_id":4668054,"name":"Williamson County","country":"US","coord":{"lon":-86.900002,"lat":35.900059}}
+{"_id":4614286,"name":"Clovercroft","country":"US","coord":{"lon":-86.76667,"lat":35.923672}}
+{"_id":5391692,"name":"San Benito County","country":"US","coord":{"lon":-121.084358,"lat":36.616631}}
+{"_id":5403354,"name":"Tres Pinos","country":"US","coord":{"lon":-121.321037,"lat":36.789959}}
+{"_id":4578039,"name":"Fair Play","country":"US","coord":{"lon":-82.985428,"lat":34.511211}}
+{"_id":4895035,"name":"Hancock County","country":"US","coord":{"lon":-91.150139,"lat":40.516708}}
+{"_id":4886716,"name":"Carthage","country":"US","coord":{"lon":-91.136253,"lat":40.416431}}
+{"_id":5116680,"name":"Essex County","country":"US","coord":{"lon":-73.816254,"lat":44.100052}}
+{"_id":5129029,"name":"North Elba","country":"US","coord":{"lon":-73.954308,"lat":44.243382}}
+{"_id":4215089,"name":"Peach County","country":"US","coord":{"lon":-83.833237,"lat":32.566811}}
+{"_id":4200311,"name":"Hidden Forest","country":"US","coord":{"lon":-83.774353,"lat":32.665138}}
+{"_id":4857806,"name":"Fremont County","country":"US","coord":{"lon":-95.600273,"lat":40.750561}}
+{"_id":4870995,"name":"Percival","country":"US","coord":{"lon":-95.813606,"lat":40.74889}}
+{"_id":5372148,"name":"Mendenhall Springs","country":"US","coord":{"lon":-121.647728,"lat":37.588268}}
+{"_id":4666265,"name":"Weakley County","country":"US","coord":{"lon":-88.833389,"lat":36.30006}}
+{"_id":4624922,"name":"Glasgow (historical)","country":"US",&qu