|  | import subprocess
import sys
import json
def get_centroids(file, field_name):
    results = {}
    for entry in subprocess.check_output(
        [
            "mapshaper",
            "-i",
            file,
            "-each",
            "\"console.log(JSON.stringify({{name: {0}, lon: this.centroidX, lat: this.centroidY}}))\"".format(field_name)
        ],
        shell = True,
        stderr = subprocess.STDOUT
    ).decode("utf-8").split("\n"):
        print(entry)
        parts = json.loads(entry)
        results[parts["name"]] = {
            "lon": float(parts["lon"]),
            "lat": float(parts["lat"])
        }
    
    return results
def extract_shape(file, field_name, field_value):
    lat, lon = subprocess.check_output(
        [
            "mapshaper",
            "-i",
            file,
            "-filter",
            "\"{0} == {1}\"".format(field_name, field_value),
            "-each",
            "\"console.log(this.centroidX, this.centroidY)"
        ]
    )
if __name__ == "__main__":
    print(get_centroids(sys.argv[1], sys.argv[2]))
 |